2

似乎当我使用 SQLite 管理器下结构页面上的“编辑列”命令修改表中的列定义(不是主键列)时,sqlite3 从其 sqlite_sequence 表中删除了该表名。我尝试手动将其重新添加,但发现 seq 编号不会在添加到丢失的表时更新。

有谁知道如何恢复丢失的表名?

4

1 回答 1

6

sqlite_sequence文档说:

如果 AUTOINCREMENT 表的 sqlite_sequence.seq 值手动设置为整数以外的值,并且随后尝试插入或更新 AUTOINCREMENT 表,则行为未定义。

然而:

如果在更新 AUTOINCREMENT 表时不存在 AUTOINCREMENT 表的 sqlite_sequence 行,则创建一个新的 sqlite_sequence 行。

所以你不应该向 sqlite_sequence 添加一个“假”条目,但如果它存在,你可以更改它。

于 2012-09-19T13:27:16.613 回答