老出错: mysql Duplicate entry ‘*’ for key 1

时间:2023-01-31 00:13:26
我肯定,我只有在Autoincrement的字段 设置了 primary key ,
没有其他的key~ !

但是还老出这样的错误。
另外,我没设置unique,一定要把这个设置上吗?

3 个解决方案

#1


insert into t1
       select f1,f2,
              a.`a1`,
              a.`a2`,
              a.`a3`,
              0 ,NULL
       from t2 a
       where  a.`d`=d;
       
       我发现问题来自上述语句。
       
       t1 最后1列是autoincrement。
       显然,应该是 t2表中返回多行时出错的。
       
       但是比较恶心的是,不是每次都出错。

#2


这个意思大概就是说,你给主键上赋了一个原来已经存在的值。
比如原来主键上有1,2,3这三个值,如果你再给它赋值1,就会这样报错了。

#3


show index from t1
先看一下是不是主键是不是只有一个列?

#1


insert into t1
       select f1,f2,
              a.`a1`,
              a.`a2`,
              a.`a3`,
              0 ,NULL
       from t2 a
       where  a.`d`=d;
       
       我发现问题来自上述语句。
       
       t1 最后1列是autoincrement。
       显然,应该是 t2表中返回多行时出错的。
       
       但是比较恶心的是,不是每次都出错。

#2


这个意思大概就是说,你给主键上赋了一个原来已经存在的值。
比如原来主键上有1,2,3这三个值,如果你再给它赋值1,就会这样报错了。

#3


show index from t1
先看一下是不是主键是不是只有一个列?