级联删除在Sequelize中不起作用

时间:2016-10-28 06:52:20

标签: postgresql sequelize.js

我有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'
        });
}}

但是当我删除一个专业的相应用户时,不会被删除。

当我签入postgres约束时,

TABLE "professional" CONSTRAINT "professional_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"(id) ON UPDATE CASCADE ON DELETE CASCADE

任何人都可以解释这种行为......?

1 个答案:

答案 0 :(得分:0)

您无法通过删除user中的行删除professional表中的行,因此user表为主,professional为辅助(使用外键userId)。但您可以通过删除用户的行删除专业行。