我有2个模型先知和任务,它们之间的关系是 m:n :
先知
const prophet = sequelize.define('prophets', {
name: {
type: Sequelize.STRING,
primaryKey: true,
unique: true
}
});
prophet.relationship = function(task) {
prophet.belongsToMany(task, {
through: 'prophetTasks',
as: 'tasks',
foreignKey: 'prophetName'
});
};
任务
const task = sequelize.define('tasks', {
name: {
type: Sequelize.STRING,
primaryKey: true,
unique: true
}
});
task.relationship = function(prophet) {
task.belongsToMany(prophet, {
through: 'prophetTasks',
as: 'prophets',
foreignKey: 'taskName'
});
};
编辑: 我的问题是有时我必须更新一个先知,这可能会删除与任务的某些关系,但是我无法弄清楚如何删除与任何先知没有任何关系的任务。
我相信我应该在 prophetTasks 表中找到所有不属于自己的任务,但我不知道如何使用续集查询
答案 0 :(得分:0)
您可以使用
ON DELETE CASCADE
因此,每当删除该行时,包含该行作为外键的数据都将被删除。