sql >> Database teknologi >  >> RDS >> Mysql

Kreative anvendelser for sorthulsmotoren

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.



  1. Sideinddeling ved hjælp af MySQL LIMIT, OFFSET

  2. Hvad betyder SQL-sætning GROUP BY 1?

  3. WFLYJCA0041:Kunne ikke indlæse modul til driver [com.mysql] på Jboss 7 med MySQL-database

  4. Hvordan modellerer du effektivt arv i en database?