Knex截断表具有外键约束

Kou*_*sha 5 javascript mysql truncate knex.js

是否可以强制截断具有外键约束的表,以便还删除其他表中的所有行?

我在文档中看不到传递给knex('tableName').truncate()方法的选项.

Gan*_*ead 7

我没有找到内置的方法来做到这一点,所以我只是进入原始模式:

 knex.raw('TRUNCATE TABLE users, products CASCADE')
Run Code Online (Sandbox Code Playgroud)

您还可以将其设置为在迁移中自动进行:

exports.up = function(knex) {
  return knex.schema.createTable('users_products', (t) => {
      t.uuid('id').primary().defaultTo(knex.raw('uuid_generate_v4()'));
      t.uuid('user_id').notNullable().references('id').inTable('users').onDelete('CASCADE');
      t.uuid('product_id').notNullable().references('id').inTable('products').onDelete('CASCADE');
  });
};
Run Code Online (Sandbox Code Playgroud)

  • 在当前版本的 knex 中,命令如下所示:`knex.schema.raw('TRUNCATE TABLE users, products CASCADE')` (2认同)