Portál AbcLinuxu, 14. května 2025 00:02
CREATE TRIGGER 'mazani' AFTER DELETE ON produkty FOR EACH ROW BEGIN DELETE FROM 'dalsi tabulka' where produkt_id = OLD.produkt_id; ... ENDMožná tak nějak. Možná by to šlo i pře JOIN?
ON DELETE CASCADE
.
Zrejme taky bude existovat uz nejaka tabulka vyrobci
, tak by se melo mazat tam a o smazani vsech zavislych zaznamu by se postarala kaskada..
vyrobci
, ale tam jsou údaje o výrobci. Jediná tabulka, která obsahuje mimo jiné vztah mezi product_id
a vyrobce_id
je právě tabulka produkty
a já potřebuju smazat ze všech tabulek všechny produkty, které patří jednomu výrobci.
OLD.produkt_id
obsahuje id smazaneho produktu, takze lze napsat za sebe pet deletu z tech tabulek zavislych na tabulce produkty
podle smazaneho id produktu.
produkty
. ON DELETE CASCADE je tedy stale nejcistsi, nejstrucnejsi, blablabla
delete from t1 where produkt_id in ( select produkt_id from produkty where vyrobce_id = 3 )reseni s triggery nebo kaskadami ma problem v tom, ze se to smaze vzdy bez ohledu na to, jestli jde o ten scenar "vsechny produkty" nebo jiny - to musis sam vedet, jestli by to vadilo nebo ne
produkty
, což by byl problém při řešení s triggery, pokud jsem je dobře pochopil.
delete from t1
byl i z např. tabulky t2 a t3 najednou? A aby ten select produkt_id from produkty where vyrobce_id = 3
byl i pro vyrobce_id = 5
a vyrobce_id = 10
? Děkuji
obrázky
s obrázek_id
a produkt_id
, kde je to jediné místo, kde je uložen tento vztah, který potřebuji pro identifikaci těch obrázků, jelikož se ten obrázek nejmenuje produkt_id.jpg
ale blabla.jpg
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.