In MySQL können wir dies ausführen, wobei die Spalte changetimestamp
jedes Mal aktualisiert wird, wenn die Zeile geändert wird:
create table ab (
id int,
changetimestamp timestamp
NOT NULL
default CURRENT_TIMESTAMP
on update CURRENT_TIMESTAMP
);
Gibt es etwas Ähnliches in PostgreSQL?
postgresql
timestamp
bichonfrise74
quelle
quelle
timestamp
je nach Version und Einstellungen eine Reihe von "Spezialbehandlungen" für Spalten bietet, die (zum Glück!) Nicht in Postgres reproduziert werden können.0
Zum Beispiel das Zulassen einertimestamp
Spalte oder das UmwandelnNULL
in den aktuellen Zeitstempel bei der Eingabe in bestimmten Konstellationen. Lesen Sie unbedingt das Handbuch beider RDBMS, um sich der subtilen Unterschiede bewusst zu werden: MySQL und Postgres .Antworten:
Erstellen Sie eine Funktion, die die Änderungsstempelspalte einer Tabelle wie folgt aktualisiert:
CREATE OR REPLACE FUNCTION update_changetimestamp_column() RETURNS TRIGGER AS $$ BEGIN NEW.changetimestamp = now(); RETURN NEW; END; $$ language 'plpgsql';
Erstellen Sie einen Trigger für die Tabelle, der die Funktion update_changetimestamp_column () aufruft, wenn eine Aktualisierung wie folgt erfolgt:
CREATE TRIGGER update_ab_changetimestamp BEFORE UPDATE ON ab FOR EACH ROW EXECUTE PROCEDURE update_changetimestamp_column();
quelle
update_changetimestamp_column
anzugeben?