Hittade en med en trigger:
Om du har en komplicerad serie av infogningar eller uppdateringar som behöver ske i en transaktion kan du göra dessa i applikationskoden, eller
Du kan skapa ett "stort" blackhole
tabell med tillräckligt många rader för att hålla alla värden.
Och skapa en trigger som:
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 ;
Om du inkluderar felkontrollkod kan du till och med simulera transaktioner på motorer som inte stöder det, som MyISAM.