Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisations créatives du moteur de trou noir

J'en ai trouvé un à l'aide d'un déclencheur :

Si vous avez une série compliquée d'insertions ou de mises à jour qui doivent se produire dans une transaction, vous pouvez les faire dans le code de l'application, ou

Vous pouvez créer un "gros" blackhole tableau avec suffisamment de lignes pour contenir toutes les valeurs.

Et créez un déclencheur comme :

DELIMITER $$

CREATE TRIGGER ai_bh_table_each AFTER INSERT ON bh_table FOR EACH ROW
BEGIN
  DECLARE lastid1 integer;

  INSERT INTO table1 VALUES (null, new.field1, new.field2);
  SELECT LAST_INSERT_ID() INTO lastid1;
  INSERT INTO table2 VALUES (null, new.field3, lastid1);
  ....  
END$$

DELIMITER ;

Si vous incluez un code de vérification d'erreur, vous pouvez même simuler des transactions sur des moteurs qui ne le prennent pas en charge, comme MyISAM.