【发布时间】:2018-05-21 12:55:19
【问题描述】:
Web2py 有没有办法在删除一些行后重置表的 id。 假设我有 15 条记录,我删除了最后 5 条记录,如果我插入一条新记录,它将以 id 16 开头,我更喜欢从 11 开头。
【问题讨论】:
标签: web2py
Web2py 有没有办法在删除一些行后重置表的 id。 假设我有 15 条记录,我删除了最后 5 条记录,如果我插入一条新记录,它将以 id 16 开头,我更喜欢从 11 开头。
【问题讨论】:
标签: web2py
web2py DAL id 字段是 autoincrement 整数字段,其自动递增行为由数据库引擎处理。除非您确实需要保持连续的id 值没有间隙,否则您可能不应该为此烦恼。 (如果您需要删除一条较旧的记录而不仅仅是最近插入的记录,会发生什么情况?您将如何避免竞争条件?)
如果您必须重置自动增量序列,则需要查阅您正在使用的数据库的相关文档。例如,如果您使用 SQLite,您将更新特殊 sqlite_sequence 表的相关记录,如文档中的 here(请参阅 example code)。更新序列时,请务必防止对表进行任何其他写入 - 否则可能会在更改之前插入带有更大 id 的新记录。
【讨论】: