W MySQL możemy wykonać to, gdzie aktualizuje kolumnę za changetimestamp
każdym razem, gdy zmienia się wiersz:
create table ab (
id int,
changetimestamp timestamp
NOT NULL
default CURRENT_TIMESTAMP
on update CURRENT_TIMESTAMP
);
Czy jest coś podobnego do powyższego w PostgreSQL?
postgresql
timestamp
bichonfrise74
źródło
źródło
timestamp
kolumn w zależności od wersji i ustawień, których (na szczęście!) Nie można odtworzyć w Postgresie. Podobnie jak zezwolenie0
natimestamp
kolumnę lub przekształcenieNULL
w bieżący znacznik czasu na wejściu w niektórych konstelacjach. Zapoznaj się z instrukcją obsługi obu RDBMS, aby zdawać sobie sprawę z subtelnych różnic: MySQL i Postgres .Odpowiedzi:
Utwórz funkcję, która aktualizuje kolumnę changetimestamp tabeli w następujący sposób:
CREATE OR REPLACE FUNCTION update_changetimestamp_column() RETURNS TRIGGER AS $$ BEGIN NEW.changetimestamp = now(); RETURN NEW; END; $$ language 'plpgsql';
Utwórz wyzwalacz w tabeli, który wywoła funkcję update_changetimestamp_column () za każdym razem, gdy nastąpi aktualizacja:
CREATE TRIGGER update_ab_changetimestamp BEFORE UPDATE ON ab FOR EACH ROW EXECUTE PROCEDURE update_changetimestamp_column();
źródło
update_changetimestamp_column
?