2016-10-28 95 views
0

工作,我有2种型号级联删除不Sequelize

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

任何人都可以解释这种现象......?

回答

0

你不能在user表通过删除行professional删除行,所以user表是主professional是次要的(与外键用户id)。但是你可以通过删除用户的行来删除专业的行。

+0

有意义。谢谢。 – runitfirst