Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Trigger wyzwalany modyfikacją jednego pola
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
beel
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
phpion
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.