在SQLite数据库中的特定位置插入一行

时间:2014-03-25 08:30:04

标签: sql sqlite sql-update android-sqlite insert-update

我在SQLite Manager&中创建了数据库。我错误地提到了一排。

现在,我想手动在中间添加一行&在其下方,其余的自动增量键应自动增加1。我希望我的问题很清楚。

感谢。

2 个答案:

答案 0 :(得分:5)

你不应该关心关键值,只需在最后追加你的行。

如果你真的需要这样做,你可能只需用这样的东西来更新密钥。如果要在第87行插入新行

为钥匙腾出空间

update mytable
set key = key + 1
where key >= 87

插入行

insert into mytable ...

最后更新新行的密钥

update mytable
set key = 87
where key = NEW_ROW_KEY

答案 1 :(得分:3)

我只是更新ID,递增它们,然后手动插入记录设置ID:

CREATE 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    |

使用AUTOINCREMENT功能插入的下一条记录将具有倒数第二个ID(在我们的例子中为4)。