Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle fügt das aktuelle Datum automatisch hinzu

Vorausgesetzt,

  1. Ihre Spalte heißt eigentlich nicht date da das ein reserviertes Wort ist
  2. Ihre Spalte ist tatsächlich als date definiert statt als number
  3. Sie möchten die Spalte füllen, wenn Sie eine neue Zeile einfügen

Sie können einen Standardwert für die Spalte definieren.

SQL> ed
Wrote file afiedt.buf

  1  create table products (
  2  id number not null,
  3  dt date   default sysdate not null
  4* )
SQL> /

Table created.

SQL>
SQL> insert into products( id ) values( 1 );

1 row created.

SQL> select * from products;

        ID DT
---------- ---------
         1 20-NOV-12

Wenn Sie die dt ändern möchten Spalte beim UPDATE Zeile, benötigen Sie einen Trigger

CREATE OR REPLACE TRIGGER trg_products
  BEFORE INSERT OR UPDATE ON products
  FOR EACH ROW
BEGIN
  :new.dt := sysdate;
END;

Ein Trigger überschreibt jeden Wert, der als Teil von INSERT übergeben wird oder UPDATE Anweisung für dt Säule. Ein Standardwert wird nicht.