sql >> Databasteknik >  >> RDS >> Mysql

Kreativa användningsområden för svarthålsmotorn

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.



  1. MySQL - Byt namn på kolumn

  2. En introduktion till datautvinning

  3. Emulera MySQL LIMIT-satsen i Microsoft SQL Server 2000

  4. Java-fil ladda upp till MySQL