Förutsatt att
- Din kolumn heter faktiskt inte
date
eftersom det är ett reserverat ord - Din kolumn är faktiskt definierad som ett
date
snarare än som ettnumber
- 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.