Portál AbcLinuxu, 4. prosince 2025 19:04
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
Pokud by to cele melo slouzit k udrzovani referencni integrity, tak by tam mela byt kaskada (jestli ji MySQL umi) a nebylo by co resit.
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.