[Err] 1062 - Duplicate entry '0' for key 'PRIMARY'

语句如下:

INSERT INTO analoginput (
	aliasname,
	description,
	NAME,
	type,
	rtuid
) SELECT
	aliasname,
	description,
	NAME,
	type,
	rtuid
FROM
	analoginput
WHERE
	RTUID = 11;

返回的错误:

[Err] 1062 - Duplicate entry '0' for key 'PRIMARY'

其中ID为主键,表中有两条RTUID = 11的值

目的:想要做到复制插入多条数据,然后主键id根据表中最后一行自增。

谢谢各位大神了。

你设置一下主键为自增就可以了,现在的错误是因为没有设置自增,又没有赋值,导致都是0,而产生主键重复的错误。

如果没有数据就重建一下表,AUTO_INCREMENT就是设置主键自增的,参考这个SQL语句:

CREATE TABLE `inStudy`  (
  `inStudyId` int(11) NOT NULL AUTO_INCREMENT,
  `inStudyName` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `seq` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`inStudyId`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;
 

如果有navicat工具,直接修改表结构也可以。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632