2016-06-25 8 views
-2

Ich habe eine Anforderung, wo ich eine Tabelle Spaltenname 'updated_date' auf jeder Einfügung aktualisieren und Spalte mit Zeitstempel aktualisieren müssen, wenn es Einfügung von Datensatz dann eine Zeile mit Einfügen von erstellen Zeitstempel in update_date und wenn der Datensatz aktualisiert wird, muss ich den aktuellen Zeitstempel in der Spalte update_date aktualisieren. Ich möchte eine Oracle-Ebene mit DDL behandeln, anstatt alle Abfragen zu ändern. Gibt es eine Option in Orakel für dasselbe?Automatische Aktualisierung Orakel Tabellenspalte mit Zeitstempel

+1

Verwenden Sie einen Trigger .. – MT0

Antwort

0

ich glaube, Sie auf TRIGGERS zumindest aussehen sollte, wie Ihr Fall eine sehr einfache Lösung hat (wenn ich Ihre Anforderung richtig verstehen):

create or replace trigger trigger1 
before insert or update on t1 
for each row 
begin 
    :new.updated_date := systimestamp; 
end; 
/

dieser Trigger wird auf Einsatz ausgelöst und Updates und Sie erhalten aktuelle Timestamp-Wert in beiden Fällen - es spielt keine Rolle, wenn Sie Datensatz einfügen oder aktualisieren.

wenn Sie eine andere BEFORE-Trigger für Insert oder aktualisieren Sie in folgenden Code hinzufügen:

if inserting or updating then 
    :new.updated_date := systimestamp; 
end if; 

Bitte, für weitere Anwendungsfälle von Auslösern in der Dokumentation für Ihre Version von Oracle RDBMS lesen.

P.S. und DDL ist für Datendefinitionsänderungen (alter table, z.B.), nicht für Einfügungen/Aktualisierungen/Löschungen, was DML ist.

Verwandte Themen