罐头´t删除mysql中外键约束引用的父表

new9mtju  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(328)

我用克奈克斯做了几张table

exports.up = function(knex, Promise) {
    return knex.schema.createTable('login_user', table => {
        table.increments('id').unsigned().primary();
        table.string('email').notNullable();
        table.unique('email');
        table.string('password_digest').notNullable();
    });
};

exports.down = function(knex, Promise) {
  return knex.schema.dropTable('login_user');
};

exports.up = function(knex, Promise) {
  return knex.schema.createTable('login_software', table => {
      table.increments('id').unsigned().primary();
      table.string('name').notNullable();
      table.integer('login_user_id').unsigned().notNullable().references('id').inTable('login_user').onDelete('CASCADE').index();
  });
};

exports.down = function(knex, Promise) {
    return knex.schema.dropTable('login_software');
};

如果我能 drop table login_user 不应该´t的 cascade 让我删除登录用户和删除登录软件的过程中?

voj3qocg

voj3qocg1#

在这种情况下,cascade没有帮助,因为它只告诉当某个外键引用所引用的行被删除时该如何处理该外键引用。
为了能够删除外键引用的表,需要首先删除外键约束。

相关问题