
PHP - Trigger
Čaute, prosim o radu, vytváram trigger, kde chcem aby keď upravím v tabuľke objednavka položku navazene, aby mi automaticky vyplnilo tabulku predaj a zároveň vymazalo záznam v tabuľke objednavka tu je trigger :
CREATE TRIGGER `vymaz` after UPDATE ON `objednavka` FOR EACH ROW
begin
INSERT INTO PREDAJ (ID, DEN, DEALER, ZAKAZNIK, navazene);
SELECT ID, CURRENT_DATE(), DEALER, ZAKAZNIK, navazene
FROM OBJEDNAVKA
WHERE navazene>0;
DELETE FROM OBJEDNAVKA WHERE navazene>0;
a tu odpoveď phpminadminu:
CREATE TRIGGER `vymaz`after UPDATE ON `objednavka` FOR EACH ROW
begin
INSERT INTO PREDAJ (ID, DEN, DEALER, ZAKAZNIK,´´, navazene)
Chyba v dotaze: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
SELECT ID, CURRENT_DATE(), DEALER, ZAKAZNIK, navazene
FROM OBJEDNAVKA
WHERE navazene>0
Žiadne riadky.
DELETE FROM OBJEDNAVKA WHERE navazene>0
Príkaz prebehol v poriadku bolo zmenených 0 záznamov.
Kde mám chybu ?
Změna předmětu, původně: Trigger (host)
aka je verzia mysql? myslim, ze triggery su az od verzie 5.0
v column liste pri insert into mas stlpec ('')...to je ako co?
toto
zmen
-- upozornenie: trigger v MySQL ma jednu nepeknu vlastnost. Ak mas trigger ON UPDATE nad nejakou tabulkou XYZ, tak v nom nemozes pracovat (napr. mazat) s riadkom z tabulky XYZ, ktoreho update vyvolal trigger. Tento riadok je locknuty.
Verzia Mysql je : 5.0.51a, tie úvodzovky ,´´, som tam dal preto, lebo v tabuľke objednavka mam stĺpec objednane a v tabuľke predaj nie, ale skúšal som to aj bez nich a píše to isté.
A ešte jedna vec, nechápem to Tvoje upozornenie, veď čo som sa dočital o funkcii trigger, tak by mala jedným príkazom upraviť (update), vložiť (insert) a aj vymazať (delete) data v tabuľkách ktoré jej určim, ale asi som to zle pochopil, ja potrebujem jedným príkazom v tabuľke objednavka upraviť položku navazene, vlozit niektoré údaje z tabuľky objednavka do tabuľky predaj a následne vymazať riadok z tabuľky objednavka ako by to nejlepšie išlo ?