我在SQLite Manager中创建了一个数据库,但不小心忘记了添加一行。现在我想要手动在中间添加一行,并且该行下面的其余自增键应自动递增1。希望我的问题清晰明了。
谢谢。
谢谢。
您不需要关心键值,只需将行附加在末尾即可。
如果您确实需要这样做,您可以使用以下方式更新键。如果您想要在键87处插入新行
为键腾出空间
update mytable
set key = key + 1
where key >= 87
insert into mytable ...
最后更新新行的键值
update mytable
set key = 87
where key = NEW_ROW_KEY
key
上设置唯一性约束似乎是可行的。因此,在这种情况下,您可以暂时删除约束(如果可能的话,我不确定),或将行移动到临时表中,然后再复制回来。 - Olaf DietscheCREATE TABLE cats (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR
);
INSERT INTO cats (name) VALUES ('John');
INSERT INTO cats (name) VALUES ('Mark');
SELECT * FROM cats;
| 1 | John |
| 2 | Mark |
UPDATE cats SET ID = ID + 1 WHERE ID >= 2; -- "2" is the ID of forgotten record.
SELECT * FROM cats;
| 1 | John |
| 3 | Mark |
INSERT INTO cats (id, name) VALUES (2, 'SlowCat'); -- "2" is the ID of forgotten record.
SELECT * FROM cats;
| 1 | John |
| 2 | SlowCat |
| 3 | Mark |
row_no=row_no+1
)x位置之后的数据并插入一个值为x的行,并不要忘记为row_no字段创建聚集索引。 - user2889419