sql >> Databáze >  >> RDS >> Mysql

Odstranění z více tabulek s cizími omezeními

Nejjednodušší způsob by bylo odstranit z každé tabulky jednotlivě:

-- Remove all connections from A which reference
-- the B-rows you want to remove
DELETE FROM A_has_B
WHERE B_id IN (1,2,4);

-- Remove all connections from C which reference
-- the B-rows you want to remove
DELETE FROM C_has_B
WHERE B_id IN (1,2,4);

-- Finally remove the B-rows
DELETE FROM B
WHERE B_id IN (1,2,4);

MySQL také umožňuje mazat z více tabulek v jednom příkazu. Ale neexistuje způsob, jak kontrolovat pořadí mazání. Z příručky :



  1. Nelze použít UPDATE s klauzulí OUTPUT, když je na stole spouštěč

  2. Je Markdown (s strip_tags) dostatečný k zastavení útoků XSS?

  3. Jak převést datum a čas na hodnotu unixové epochy v Postgresu?

  4. MYSQL Vyberte řádky, kde je datum starší než datum a čas