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
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Chyba id przesyłki musisz pobrać inaczej niż `tserwis`.`IdSerwisSe`, bo to chyba ma być wartość ze starego rekordu, a nie ze wszystkich wierszy kolumny IdSerwisSe w tabeli tserwis.
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: 18.09.2025 - 01:16