sql >> Databasteknik >  >> RDS >> Oracle

Oracle lägg till aktuellt datum automatiskt

Förutsatt att

  1. Din kolumn heter faktiskt inte date eftersom det är ett reserverat ord
  2. Din kolumn är faktiskt definierad som ett date snarare än som ett number
  3. Du vill fylla i kolumnen när du infogar en ny rad

du kan definiera ett standardvärde för kolumnen.

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

Om du vill ändra dt kolumnen när du UPDATE raden skulle du behöva en utlösare

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

En trigger kommer att åsidosätta alla värden som skickas in som en del av INSERT eller UPDATE sats för dt kolumn. Ett standardvärde kommer inte.




  1. opencart - Hur visar man manuellt en modul i en mallfil?

  2. PHP password_verify fungerar inte mot databasen

  3. MySQL:Mycket långsam uppdatering/infoga/ta bort frågor som hänger på frågeslutsteget

  4. Lagra Apache Hadoop Data Output till Mysql Database