似乎当我使用 SQLite 管理器下结构页面上的“编辑列”命令修改表中的列定义(不是主键列)时,sqlite3 从其 sqlite_sequence 表中删除了该表名。我尝试手动将其重新添加,但发现 seq 编号不会在添加到丢失的表时更新。
有谁知道如何恢复丢失的表名?
似乎当我使用 SQLite 管理器下结构页面上的“编辑列”命令修改表中的列定义(不是主键列)时,sqlite3 从其 sqlite_sequence 表中删除了该表名。我尝试手动将其重新添加,但发现 seq 编号不会在添加到丢失的表时更新。
有谁知道如何恢复丢失的表名?
sqlite_sequence文档说:
如果 AUTOINCREMENT 表的 sqlite_sequence.seq 值手动设置为整数以外的值,并且随后尝试插入或更新 AUTOINCREMENT 表,则行为未定义。
然而:
如果在更新 AUTOINCREMENT 表时不存在 AUTOINCREMENT 表的 sqlite_sequence 行,则创建一个新的 sqlite_sequence 行。
所以你不应该向 sqlite_sequence 添加一个“假”条目,但如果它存在,你可以更改它。