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

Kreative Anwendungen für die Blackhole-Engine

Habe einen mit einem Trigger gefunden:

Wenn Sie eine komplizierte Reihe von Einfügungen oder Aktualisierungen haben, die in einer Transaktion ausgeführt werden müssen, können Sie diese im Anwendungscode oder

ausführen

Sie können ein "großes" blackhole erstellen Tabelle mit genügend Zeilen, um alle Werte aufzunehmen.

Und erstellen Sie einen Trigger wie:

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 ;

Wenn Sie Code zur Fehlerprüfung einschließen, können Sie sogar Transaktionen auf Engines simulieren, die ihn nicht unterstützen, wie MyISAM.