2016-10-28 94 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