【问题标题】:In Sequelize model.destroy({ truncate: true }) does not reset primary key在 Sequelize model.destroy({ truncate: true }) 不会重置主键
【发布时间】:2017-02-07 12:01:16
【问题描述】:

在 Sequelize 中,我使用这个函数 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);
    });

【问题讨论】:

标签: javascript mysql node.js express sequelize.js


【解决方案1】:

您没有使用正确的语法:

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

应该是:

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

the documentation

【讨论】:

  • 它对我不起作用。我没有使用默认设置为 null 的方法
  • @Marc 可能值得为您的特定问题创建一个新问题。
  • 请注意,这不适用于 sequelize 6.5.1 上的 sqlite3 "5.0.2"。 truncate: true 不会更改 SQLite 查询,因为它没有 TRUNCATE 只有一个自动优化,所以它只是运行 DELETE FROM,它不会重置索引。到目前为止,没有人在没有原始 SQL 的情况下进行管理:stackoverflow.com/questions/55966627/… 在以下位置创建了一个问题:github.com/sequelize/sequelize/issues/13286
猜你喜欢
  • 2019-09-21
  • 2018-01-15
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 2021-02-01
  • 2016-08-21
  • 2020-03-28
  • 2016-11-15
相关资源
最近更新 更多