繁体   English   中英

在 Sequelize model.destroy({ truncate: true }) 中不重置主键

[英]In Sequelize model.destroy({ truncate: true }) does not reset primary key

在 Sequelize 中,我正在使用这个 function model.destory({ truncate: true }),它删除表中的所有数据。 但问题是它不会重置表中应设置为零的主键序列。 我正在使用 Mysql。有人说 Mysql 会自动重置主键序列,但在我的情况下并没有发生。

这是我的代码:

db.Booking.destroy({ truncate: { cascade: false } })
    .then(() => {
      res.json({ status: true });
    }, (err) => {
      console.log('truncate: ', err);
      res.json(err);
    });

您没有使用正确的语法:

db.Booking.destroy({ truncate: { cascade: false } })

那应该是:

db.Booking.destroy({ truncate : true, cascade: false })

请参阅文档

如果您在任何情况下都使用自定义外键,请改用它

db.Booking.truncate({cascade: true, restartIdentity:true})

因为destroy不会随意使用自定义外键

这个在文档中嵌套得很深

看这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM