我有一个像这样的 mysql 表:
PK other_id name url
1 1 jeff www.jeff.com
2 2 steve www.steve.com
3 3 jenn www.jenn.com
4 4 susan www.susan.com
5 5 melissa www.melissa.com
我需要在主键为 3 的表中输入一个新行。该主键已被占用,因此我必须以某种方式拆分该数据 block ,插入新的 PK=3 的新行,然后附加剩余的行现在将从 PK=4 开始。
PK other_id name url
1 1 jeff www.jeff.com
2 2 steve www.steve.com
3 3 josh www.josh.com <---- new row added with PK=3
4 4 jenn www.jenn.com
5 5 susan www.susan.com
6 6 melissa www.melissa.com
我尝试了更改表技术,但没有成功。
最佳答案
您可以执行以下操作
INSERT INTO mytable VALUES(....);
SELECT @ID:=LAST_INSERT_ID();
UPDATE mytable SET PK=PK+1, other_id=other_id+1 WHERE PK>=3;
UPDATE mytable SET PK=3, other_id=3 WHERE PK=@ID;
关于mysql - 使用已存在的主键将新行插入到 mysql 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548691/