sql >> Databasteknik >  >> RDS >> Mysql

Hur skapar man en TRIGGER i SEQUELIZE (nodeJS)?

Du kan göra detta på ett av två sätt. Som du noterade kan du skapa en trigger i själva databasen. Du kan köra en obearbetad uppföljningsfråga för att åstadkomma detta:

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

Eller så kan du skapa en hook på användarmodellen som utför en åtgärd på en afterCreate händelse:

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. MySQL:Använder DATETIME som primärnyckel

  2. 11 sätt att returnera främmande nycklar i en SQL Server-databas med T-SQL

  3. Så här grupperar du efter månad från datumfältet med sql

  4. Summa med SQL-server RollUP - men bara sista sammanfattningen?