gpt4 book ai didi

mysql - 错误代码: 1062 Duplicate entry for key 'PRIMARY'

转载 作者:行者123 更新时间:2023-11-30 00:34:15 24 4
gpt4 key购买 nike

我不断收到错误代码 1062:重复条目。第一行插入,但随后在同一 ID 上失败。所以每次我点击执行它都会增加:1466、1467、1468、1469。并且每次输入相同的记录,因此我假设自动增量仅适用于第一次迭代。

表:

'entity':  

CREATE TABLE `entity` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`reg_num` varchar(45) NOT NULL,
`enterprise_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1474 DEFAULT CHARSET=latin1 COMMENT=\'Comment'

存储过程:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `tp_to_entityPROC`()
DETERMINISTIC
COMMENT 'stored'
BEGIN
DECLARE done BOOLEAN DEFAULT 0;
DECLARE Tid INT;
DECLARE Tt_name TEXT;

DECLARE allt CURSOR FOR
SELECT training_provider_id, training_provider_name
FROM training_providers;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

OPEN allt;
read_loop: LOOP
IF done THEN
LEAVE read_loop;
END IF;

FETCH allt INTO Tid, Tt_name;

SET @id = 0;
SET @t_name = 0;
SET @id = Tid;
SET @t_name = Tt_name;
SET @empty = '';

if (@id != 0) THEN
INSERT INTO entity (name)
VALUES (@t_name);
SET @my_id = LAST_INSERT_ID();

IF @my_id != 0 THEN
UPDATE training_awarded_providers
SET training_awarded_provider_id = @my_id
WHERE training_awarded_provider_id = @id;
END IF;
END IF;

END LOOP;
CLOSE allt;

END

最佳答案

不确定重复条目的确切错误,但您发布的代码将无法工作。

您的表架构

CREATE TABLE `entity` (  
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`reg_num` varchar(45) NOT NULL <-- Here it's non null column

在您的存储过程中,您尝试将 null 插入 reg_num 列,但这永远不会成功

if (@id != 0) THEN
INSERT INTO entity (name)
VALUES (@t_name);

关于mysql - 错误代码: 1062 Duplicate entry for key 'PRIMARY' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22300799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com