当表中有唯一键(不是PRIMARY KEY
)并且过程正在运行时,如果出现重复键错误,整个过程将停止。我想恢复错误并再次调用该过程。
步骤:
DELIMITER $$
CREATE PROCEDURE `injatest`.`LoadData` ()
BEGIN
DECLARE x INT;
SET x = 1;
WHILE x <= 14400 DO
INSERT INTO junc_question_course_iq(q_id,iq_id,ct_id) VALUES
(CEIL(RAND()*1000), CEIL(RAND()*48), CEIL(RAND()*10));
SET x = x + 1;
END WHILE;
END $$
DELIMITER ;
我想在联结表中插入大约 14000 条记录,但是当唯一(iq_id,q_id)存在重复键时会出现问题?做什么?
您可以
DECLARE CONTINUE HANDLER FOR SQLSTATE
通过将空块声明为异常处理程序来忽略密钥冲突,如下所示: