我有一个表,其中每一行都有一个主键ID(有序ASC),这只是一个数字。有没有办法在两个其他行之间插入一行,首先将它下面的所有行移动一个?
答案 0 :(得分:3)
是的,你可以想要插入ID为2的行
CREATE TABLE Table1
(id INT,`test` varchar(10))
;
INSERT INTO Table1
(id,`test`)
VALUES
(1,'val'),
(2,'val'),
(3,'val')
;
演示表有3条记录,现在你已经分配了id 2,你想为id 2添加行,并将所有id增加1
update Table1
set id =id+1
where id >1
ORDER BY id DESC;
INSERT INTO Table1
(id,`test`)
VALUES
(2,'my val');
在更新中,主键必须
ORDER BY id DESC
才能忽略重复输入错误
SELECT * FROM Table1 order by id