无法在mysql

时间:2018-10-24 18:29:00

标签: mysql knex.js

我用knex制作了一些桌子

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_usercascade是否应该让我删除login_user并删除login_software?

1 个答案:

答案 0 :(得分:0)

级联在这种情况下无济于事,因为级联仅在删除其所引用的行时才告诉对某个外键引用做什么。

要删除外键所引用的表,您需要先删除外键约束。