sql >> Database teknologi >  >> RDS >> Mysql

Hvordan opretter man en TRIGGER i SEQUELIZE (nodeJS)?

Du kan gøre dette på en af ​​to måder. Som du bemærkede, kunne du oprette en trigger i selve databasen. Du kan køre en rå efterfølgerforespørgsel for at opnå dette:

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

Eller du kan oprette en hook på brugermodellen, der udfører en handling på en afterCreate begivenhed:

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;
};


  1. Find gratis slots i et bookingsystem

  2. Blanding af eksplicitte og implicitte joinforbindelser mislykkes med Der er en post for tabel ... men den kan ikke refereres fra denne del af forespørgslen

  3. Slet data fra en MySQL-database

  4. Træk år fra en dato i PostgreSQL