gpt4 book ai didi

node.js - 如何使用sequelize重置autoIncrement主键?

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:41 29 4
gpt4 key购买 nike

我使用 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 字段,这不能按预期工作。

你必须explicitly invoke the SQL :

await sequelize.query(`DELETE FROM "sqlite_sequence" WHERE "name" = 'table_name'`)

关于node.js - 如何使用sequelize重置autoIncrement主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55966627/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com