我使用 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(使用前将#替换为@)