如何使用sequelize重置autoIncrement主键?

2023-11-24

我使用 sqlite3 作为我的数据库并使用sequelize库来处理它。 我有一个模块并想要重置autoIncrement截断后的主键。

    var logModule = db.logModule()
    logModule.destroy({

        where:{},
        truncate: true
    })

但我发现这种方式只是清除了表中的所有记录,并没有重置autoIncrement主键为零。

清除表中的所有记录后有什么方法可以重置主键吗?


你应该通过restartIdentity: true销毁/截断sequelize 中的方法。

   models[modelName]
     .destroy({ truncate: true, restartIdentity: true })

restartIdentity- 仅与 TRUNCATE 结合使用。自动重新启动被截断表的列所拥有的序列。

对于由 sqlite 的 Sequelize 生成的 id 字段,这不能按预期工作。

你必须显式调用 SQL:

await sequelize.query(`DELETE FROM "sqlite_sequence" WHERE "name" = 'table_name'`)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用sequelize重置autoIncrement主键? 的相关文章

随机推荐