Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erstelle ich einen TRIGGER in SEQUELIZE (nodeJS)?

Sie können dies auf zwei Arten tun. Wie Sie angemerkt haben, können Sie einen Trigger in der Datenbank selbst erstellen. Sie könnten eine unformatierte Sequelize-Abfrage ausführen, um dies zu erreichen:

sequelize.query('CREATE TRIGGER create_config AFTER INSERT ON users' +
  ' FOR EACH ROW' +
  ' BEGIN' +
  ' insert into configs (UserId) values(new.id);' +
  'END;')

Oder Sie könnten einen Hook erstellen auf dem Benutzermodell, das eine Aktion auf einem afterCreate ausführt Ereignis:

module.exports = function(sequelize, DataTypes) {    
  var User = sequelize.define('User', {
    name        : DataTypes.STRING(255),
    email       : DataTypes.STRING(255),
    username    : DataTypes.STRING(45),
    password    : DataTypes.STRING(100),
  }, {
    classMethods : {
      associate : function(models) {
        User.hasOne(models.Config)
      }
    },
    hooks: {
      afterCreate: function(user, options) {
        models.Config.create({
          UserId: user.id
        })
      }
    }
  });
  return User;
};