Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Trigger wyzwalany modyfikacją jednego pola
beel
post 26.11.2011, 17:00:52
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 20.04.2007

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


Napisałem przykładowy trigger:
  1. CREATE OR REPLACE FUNCTION up_field_dataimp() RETURNS TRIGGER
  2. AS $upwfimp$
  3. BEGIN
  4. IF (WARUNEK_JESLI_NOWA_WARTOSC_POLA_DATA1) THEN
  5. new.data2 = NOW();
  6. END IF;
  7. RETURN new;
  8. END;
  9. $upwfimp$ LANGUAGE 'plpgsql';
  10.  
  11. CREATE TRIGGER up_field_dataimp
  12. BEFORE INSERT OR UPDATE
  13. ON tabelka
  14. FOR EACH ROW EXECUTE PROCEDURE up_field_dataimp();


W powyższym przykładzie brakuje mi warunku: "jeśli pole data1 dostało nową wartość.... "
to dalej modyfikuj już pole data2 o aktualną datę. Proszę o pomoc.

Myślałem o takim warunku, ale nie mam pewności czy zawsze dobrze zadziała:
  1. IF (old.data1 <> new.data1) THEN


Ten post edytował beel 26.11.2011, 17:08:08
Go to the top of the page
+Quote Post
phpion
post 1.12.2011, 08:28:29
Post #2





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Przy triggerze odpalanym przy wstawianiu danych nie masz old.*. Musisz sprawdzić czy operacja (TG_OP) to aktualizacja rekordu i wówczas sprawdzić zmianę wartości pola.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 08:47