Autor Zpráva
radecek
Profil
Ahoj,

potrebuju definovat trigger, ktery bude reagovat na insert a pritom vlozi do jine tabulky dalsi data.

table0 - cilova tabulka, definuje nejake slozitejsi vazby ktere jsou v triggeru
triggerTable - tabulka na kterou ja vazan trigger
table1 - libovona tabulka

insert into table0 (col1, col2) (select triggerTable.id, table2.id from triggerTable, table2 ... where  ... triggerTable.id = NEW.id)


Dotaz je orezany, podminka vyhledavani a relace neni tedka dulezita.. Pokud vezmu tento dotaz a misto NEW.id vlozim posledni vlozene id do triggerTable tak se provede spravne. Zkousel jsem udelat testovaci tabulku kde budu ukladat NEW.id a take ma spravnou hodnotu..

Ale i tak se trigger neprovadi.. Existuje nejaky log trigeru nebo dotazu abych se mohl podivat co presne se mi provadi? Nebo napadas vas reseni kde by mohla byt chyba? Trigger je affter..

Je lepsi to udelat pomoci triggeru, protoze table0 je davkova tabulka mezi relamecemi vice tabulek, ktera se pak zpracovava postupne v zavisloti na dnech a casech..
Kajman_
Profil *
Nedělejte select do tabulky, na které je trigger navěšen. Použitje NEW.hodnoty, tam kde je potřebujete.

select NEW.id, table2.id from table2 where ...
radecek
Profil
Hmm to je fakt.. Uz vim kde je chyba.. Plni se dve tabulky - inzerat a regiony, ale regiony se provedou az po vlozeni dotazu a taky triggeru.. tedy se nesplni podminka pro vyhledavani regionu a do table0 se nevlozi tedy nic..

Da se nejak udelat abych mel trigger na skupinu dotazu? Nebo respektive ho spustit o neco pozdeji.. Diky..
Kajman_
Profil *
Tak si nedělejte trigger, ale uloženou proceduru, kterou spustíte na konci skupiny dotazů.
radecek
Profil
Tak jsem to i udelal ale musim na to myslet a volat ji v metode modulu.. Pres transakce to nejde udelat?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0