我想将我的数据复制到数据库中,因为我已经在下面编写了脚本,
BEGIN
DECLARE a INT Default 1;
DECLARE counter INT;
SET counter=12;
WHILE counter<1010 DO
IF a=1 THEN
insert into problem
values(counter,'d0008','blood pressure','ajay','25-jun-1990');
insert into med
values(counter,'d0008','beta blocker','ajay','25-jun-1990');
SET a=2;
END IF;
IF a=2 THEN
insert into problem
values(counter,'d0009','headache','amit','25-jan-1990');
insert into med
values(counter,'d0009','aspirin','amit','25-jan-1990');
SET a=3;
END IF;
IF a=3 THEN
insert into problem
values(counter,'d0011','tension','anil','25-feb-1990');
insert into med
values(counter,'d0011','capsule','anil','25-feb-1990');
SET a=4;
END IF;
IF a=4 THEN
insert into problem
values(counter,'d0012','pain','ved','25-mar-1990');
insert into med
values(counter,'d0012','dcold','ved','25-mar-1990');
SET a=1;
END IF;
SET counter=counter+1;
END WHILE;
END
注意:表的第一个字段是主键...
我无法通过循环迭代这1000次,而且我的错误
call abc();
ERROR 1062 (23000): Duplicate entry '12' for key 'PRIMARY'
我不知道这个程序有什么问题..
答案 0 :(得分:1)
使用if
和counter == 12
执行第一个a == 1
。然后设置a = 2
,其中第二个if
运行且counter
仍然是12
,因此会引发主键错误。您正在插入具有相同主键的两行。
如果我理解正确,您需要使用IF-ELSEIF
结构,而不是4个不同IF
s。