今天碰到一个问题:往mysql中插入数据,两条数据明明不一样,插入时却提示主键冲突,后来弄了半天才发现是建索引的时候,建成了unique索引,恰好建索引时只用了该列值的前12个字符,所以虽然插入时值虽然不一样,但是索引值(取前12个字符)却有可能一样,这时候也会导致插入失败,提示键冲突
解决办法
1.删除索引
DROP INDEX index_name ON talbe_name
2.重新创建非unique的索引
mysql 某列上增加索引
ALTER TABLE tableName ADD INDEX (columnName)
ALTER TABLE table_name ADD UNIQUE (column_list)
alter table tableName add unique index (column1(12),column2(10)); #多列索引,指定长度
本文探讨了在MySQL中遇到主键冲突问题的原因,并提供了两种解决方案:删除索引和重新创建非唯一索引。详细解释了如何通过调整索引设置避免主键冲突,确保数据的正确插入。
1824

被折叠的 条评论
为什么被折叠?



