Fandt en ved at bruge en trigger:
Hvis du har en kompliceret række af inserts eller opdateringer, der skal ske i en transaktion, kan du gøre disse i applikationskoden, eller
Du kan oprette ét 'stort' blackhole
tabel med nok rækker til at indeholde alle værdierne.
Og opret 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 ;
Hvis du inkluderer fejlkontrolkode, kan du endda simulere transaktioner på motorer, der ikke understøtter det, såsom MyISAM.