Ervan uitgaande dat
- Je kolom heet niet echt
date
aangezien dat een gereserveerd woord is - Uw kolom is eigenlijk gedefinieerd als een
date
in plaats van als eennumber
- U wilt de kolom vullen wanneer u een nieuwe rij invoegt
u kunt een standaardwaarde voor de kolom definiëren.
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
Als u de dt
. wilt wijzigen kolom wanneer u UPDATE
de rij, dan heb je een trigger nodig
CREATE OR REPLACE TRIGGER trg_products
BEFORE INSERT OR UPDATE ON products
FOR EACH ROW
BEGIN
:new.dt := sysdate;
END;
Een trigger overschrijft elke waarde die wordt doorgegeven als onderdeel van de INSERT
of UPDATE
statement voor de dt
kolom. Een standaardwaarde niet.