“钥匙”的重复输入;“初级”;在MySQL中

“钥匙”的重复输入;“初级”;在MySQL中,mysql,database,Mysql,Database,创建表的查询: 查询设置自动递增主键的起始编号: alter table person auto_increment=1 查询以插入数据: 查询以删除行: 从roll_no=5的人员中删除 删除行后的表结构: 现在,在试图恢复已删除的行时,编译器抛出错误,为键“PRIMARY”重复条目“5”“ 用于重新恢复已删除行的查询。 出现此问题的可能原因是什么?强烈建议使用任何输入。非常简单,在更新查询中,您将4变为5,然后尝试插入5。这就是为什么它是重复的。要恢复删除的行,只需要执行insert语句。只

创建表的查询:

查询设置自动递增主键的起始编号:

alter table person auto_increment=1

查询以插入数据:

查询以删除行:

从roll_no=5的人员中删除

删除行后的表结构:

现在,在试图恢复已删除的行时,编译器抛出错误
为键“PRIMARY”重复条目“5”

用于重新恢复已删除行的查询。


出现此问题的可能原因是什么?强烈建议使用任何输入。

非常简单,在更新查询中,您将4变为5,然后尝试插入5。这就是为什么它是重复的。

要恢复删除的行,只需要执行insert语句。只需删除update语句并使用以下命令:

查询

insert into person (roll_no, name, city) VALUES (5, "Beckham", "Toronto");

只需删除update语句..表在更新之后但在插入之前是什么样子的?看见非常简单。@amdixon-Beautiful…解决了这个问题,但是仍然不知道为什么更新查询会带来问题?你能解释一下吗?@amdixon-+1知道了,谢谢你的解释@amdixon-有没有一种方法可以将上面的评论编译成一个答案,这样我就可以将其标记为一个可接受的答案&从而结束这个线程。。
insert into person (name,city) values("Maxwell", "Pune");
insert into person (name,city) values("Baldwin", "Bengaluru");
insert into person (name,city) values("Novartis", "Paris");
insert into person (name,city) values("Shaun", "Mumbai");
insert into person (name,city) values("Beckham", "Toronto");
insert into person (name,city) values("Ashish", "Bengaluru");
insert into person (name,city) values("David", "Paris");
insert into person (name,city) values("PK", "London");
insert into person (name,city) values("Chris", "Bengaluru");
insert into person (name,city) values("Aston", "Mumbai");
roll_no      name       city
1            Maxwell    Pune
2            Baldwin    Bengaluru
3            Novartis   Paris
4            Shaun      Mumbai
6            Ashish     Bengaluru
7            David      Paris
8            PK         London
9            Chris      Bengaluru
10           Aston      Mumbai
update person set roll_no = roll_no + 1 where roll_no >=4 order by roll_no desc;
insert into person (roll_no, name, city) VALUES (5, "Beckham", "Toronto");
insert into person (roll_no, name, city) VALUES (5, "Beckham", "Toronto");