美好的一天。我有3张桌子:
我有这些表的模型:
function Person(Sequelize, sequelize) {
return sequelize.define('people', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
firstName: {
type: Sequelize.STRING,
allowNull: false
},
lastName: {
type: Sequelize.STRING,
allowNull: false
},
birthdate: {
type: Sequelize.DATE,
allowNull: false
}
}, {
timestamps: false
});
}
function Place(Sequelize, sequelize) {
return sequelize.define('places', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING,
allowNull: false
}
}, {
timestamps: false
});
}
function PersonPlace(Sequelize, sequelize) {
return sequelize.define('peopleplaces', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
}
}, {
timestamps: false
});
}
所以,例如我想删除id = 1的人:
sequelize.people.destroy({ where: { personId: pId } })
但我在删除时遇到错误,对我说表PersonPlaces
包含FK到Person并且无法删除。
我尝试使用onDelete: 'cascade'
:People.belongsToMany(Places, { through: PeoplePlaces, onDelete: 'cascade' });
但没有好结果。
那么,我如何从People
删除PeoplePlaces
中有FK的人?