找回密码
 注册
首页 ≡≡网络技术≡≡ 数据库 mysql数据库结构同步时出错 Duplicate entry '2-0' for ...

mysql数据库结构同步时出错 Duplicate entry '2-0' for key 'tenders_id'

灰儿 2017-6-11 11:21:09
由于程序升级,利用Navicat工具同步两个MySQL数据库结构,源数据库为江湖家居V6.0至尊版,目标数据库为江湖家居V6.0标准版,先比对两个数据库,对比结果如下图:
000.png
在右键,选择“全部校验”,在运行到如下同步`tenders_id`索引数据时出错。

CREATE UNIQUE INDEX `tenders_id` ON `jh_tenders_look`(`tenders_id`, `uid`) USING BTREE ;

显示错误提示如下:
[Msg] Executing - DROP INDEX `tenders_id` ON `jh_tenders_look`
[Msg] Completed
[Msg] Executing - CREATE UNIQUE INDEX `tenders_id` ON `jh_tenders_look`(`tenders_id`, `uid`) USING BTREE
[Msg] Failed - Error on Index tenders_id of Table jh_tenders_look - 1062 - Duplicate entry '2-0' for key 'tenders_id'
[Err] Synchronization Failed
--------------------------------------------------
解释:
更新jh_tenders_look数据表中的一条名为 'tenders_id'索引,栏位名为`tenders_id`和 `uid`字段;

发现 'tenders_id'索引中数据有错误,栏位名为`tenders_id`和 `uid`字段数值组合“2-0”不是唯一,即存在两条或以上“2-0”数值组合。

001.png

出错原因分析:

在同步数据时,源数据表中有一个栏位索引组合数据结构,栏位名为`tenders_id`和 `uid`,索引类型为Unique(唯一),如下图:

003.png

可是同步数据结构时发现目标数据表中,对应的两个索引栏位(字段),存在两个及以上“2-0”数组,并不是唯一,所以出错。

004.png

解决方法:
打开目标数据库中的 jh_tenders_look数据表,把其中`tenders_id`和 `uid`字段,中出现的相同数组,都改唯一,不要有重复数组即可。









您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。