我有 2 个模型
var Professional = sequelize.define('professional', {
name: {
type: DataTypes.STRING,
unique: true
},
associate: function (models) {
Professional.belongsTo(models.User,
{
foreignKey: {allowNull: false},
onDelete: 'CASCADE'
});
}}
和
var User = sequelize.define('user', {
name: {
type: DataTypes.STRING,
unique: true
},
associate: function (models) {
User.hasOne(models.Professional,
{
foreignKey: {allowNull: true},
onDelete: 'CASCADE'
});
}}
但是当我删除一个 Professional 时,相应的用户不会被删除。
当我检查
postgres
约束看起来像TABLE "professional" CONSTRAINT "professional_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"(id) ON UPDATE CASCADE ON DELETE CASCADE
谁能解释这种行为......?
最佳答案
您无法通过删除 user
中的行来删除 professional
表中的行,因此 user
表为主, professional
为次要(外键为 userId)。但是您可以通过删除用户行来删除专业行。
关于postgresql - 级联删除在 Sequelize 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40299616/