Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle aggiunge automaticamente la data corrente

Ammesso che

  1. La tua colonna non è effettivamente denominata date poiché è una parola riservata
  2. La tua colonna è effettivamente definita come una date piuttosto che come un number
  3. Vuoi popolare la colonna quando inserisci una nuova riga

puoi definire un valore predefinito per la colonna.

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

Se vuoi modificare il dt colonna quando UPDATE la riga, avresti bisogno di un trigger

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

Un trigger sovrascriverà qualsiasi valore passato come parte di INSERT o UPDATE dichiarazione per il dt colonna. Un valore predefinito non lo farà.