灰儿 发表于 2017-6-11 11:21:09

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

由于程序升级,利用Navicat工具同步两个MySQL数据库结构,源数据库为江湖家居V6.0至尊版,目标数据库为江湖家居V6.0标准版,先比对两个数据库,对比结果如下图:

在右键,选择“全部校验”,在运行到如下同步`tenders_id`索引数据时出错。

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

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

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



出错原因分析:

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



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



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









页: [1]
查看完整版本: mysql数据库结构同步时出错 Duplicate entry '2-0' for key 'tenders_id'