【问题标题】:web2py database id reset after deleting records删除记录后重置 web2py 数据库 ID
【发布时间】:2018-05-21 12:55:19
【问题描述】:

Web2py 有没有办法在删除一些行后重置表的 id。 假设我有 15 条记录,我删除了最后 5 条记录,如果我插入一条新记录,它将以 id 16 开头,我更喜欢从 11 开头。

【问题讨论】:

    标签: web2py


    【解决方案1】:

    web2py DAL id 字段是 autoincrement 整数字段,其自动递增行为由数据库引擎处理。除非您确实需要保持连续的id 值没有间隙,否则您可能不应该为此烦恼。 (如果您需要删除一条较旧的记录而不仅仅是最近插入的记录,会发生什么情况?您将如何避免竞争条件?)

    如果您必须重置自动增量序列,则需要查阅您正在使用的数据库的相关文档。例如,如果您使用 SQLite,您将更新特殊 sqlite_sequence 表的相关记录,如文档中的 here(请参阅 example code)。更新序列时,请务必防止对表进行任何其他写入 - 否则可能会在更改之前插入带有更大 id 的新记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-04
      • 2015-12-03
      • 2021-02-23
      • 2018-04-09
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 2019-06-03
      相关资源
      最近更新 更多