对一张表进行DDL操作时,提示报错 ERROR 1062 (23000): Duplicate entry '4240-EC?' for key 'columns.table_id' 报错语句示例如下 ALTER TABLE TEST1 ADD C1 INT NOT NULL; 即使把表删掉了,重新建也会报同样的错误 CREATE TABLE TEST1 (C1 INT NOT NULL) 将表名或者列名更改一下,语句便可以成功执行 ALTER TABLE TEST2 ADD C1 INT NOT NULL; ALTER TABLE TEST1 ADD C2 INT NOT NULL; 就是说,只要是TEST1(表名)和C1(列名)组合在一起,就无法建表。 从mysql的系统表找了一下,应该是mysql.columns报的唯一键重复的错误,这张表中的存放表名的列和存放列名的列貌似是一个组合唯一键,猜测是为了控制同一张表不允许出现名称相同的列,但是这张表用root也没有权限查看,具体是怎么回事就不知道了。 请各位老师帮忙分析分析,怎么会出现这种情况,是mysql的元数据更新失败?还是其他什么原因导致的 |
四马路刚子
2022-12-21 17:19:49
| ||
yejr
2022-12-26 13:01:32
| ||
合作电话:010-64087828
社区邮箱:greatsql@greatdb.com