我用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_user
,cascade
是否应该让我删除login_user并删除login_software?
答案 0 :(得分:0)
级联在这种情况下无济于事,因为级联仅在删除其所引用的行时才告诉对某个外键引用做什么。
要删除外键所引用的表,您需要先删除外键约束。