Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Trigger - błąd
szewciu
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.05.2010

Ostrzeżenie: (0%)
-----


Witam,
chciałbym utworzyć trigger, który do specjalnie utworzonej tabeli będzie zapisywał wprowadzane zmiany w pewnym polu. Oto kod:

  1. CREATE TRIGGER przesylka
  2. BEFORE UPDATE ON `tserwis`
  3. FOR EACH ROW
  4. BEGIN
  5. IF new.IdStatusSt != old.IdStatusSt
  6. INSERT INTO tprzesylki(informacja)
  7. VALUES ( CONCAT("przesylka nr ",`tserwis`.`IdSerwisSe`, "zmienila status z", old.IdStatusSt, "na ", new.IdStatusSt))
  8. );
  9. END IF;
  10. END;


MySQL zwraca błąd: #1064 - Something is wrong in your syntax obok 'INSERT INTO tprzesylki(informacja)
VALUES (CONCAT("przesylka nr ",tserwis.IdSer' w linii 6


Utworzona tabela do tego celu prezentuje się tak:

  1. CREATE TABLE tprzesylki(
  2. id int AUTO_INCREMENT PRIMARY KEY,
  3. informacja varchar(255)
  4. );


Będę wdzięczny za pomoc w rozwiązaniu tego problemu, ponieważ jest to moje pierwsze podjęcie działania na wyzwalaczach dlatego też proszę o wyrozumiałość (IMG:style_emoticons/default/smile.gif)

Z góry dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
szewciu
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.05.2010

Ostrzeżenie: (0%)
-----


  1. DELIMITER ||
  2. CREATE TRIGGER zwroty
  3. BEFORE UPDATE ON tserwis
  4. FOR EACH ROW
  5. BEGIN
  6. IF new.ZwrotDataSe != old.ZwrotDataSe
  7. OR (old.ZwrotDataSe IS NULL OR old.ZwrotDataSe=0000-00-00) AND new.ZwrotDataSe IS NOT NULL then
  8. INSERT INTO tzwroty(informacja)
  9. VALUES ( CONCAT('zlecenie zakonczono', COALESCE(new.ZwrotDataSe,'NULL'))
  10. );
  11. END IF;
  12. END ||
  13. DELIMITER ;


Błąd
zapytanie SQL:

DELIMITER || CREATE TRIGGER zwrotyBEFORE UPDATE ON tserwis FOR EACH ROW BEGIN IF new.ZwrotDataSe != old.ZwrotDataSe OR (

old.ZwrotDataSe IS NULL OR old.ZwrotDataSe =0000 -00 -00
) AND new.ZwrotDataSe IS NOT NULL THEN INSERT INTO tzwroty( informacja )
VALUES (
CONCAT( 'zlecenie zakonczono', COALESCE( new.ZwrotDataSe, 'NULL' ) )
);

END IF ;

END ||
MySQL zwrócił komunikat:

#1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

Czyli co, mogę zapomnieć, że cokolwiek będzie działało jeśli chodzi o wyzwalacze?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 02:52