Zakładając, że
- Twoja kolumna w rzeczywistości nie ma nazwy
date
ponieważ jest to słowo zastrzeżone - Twoja kolumna jest w rzeczywistości zdefiniowana jako
date
zamiast jakonumber
- Chcesz wypełnić kolumnę podczas wstawiania nowego wiersza
możesz zdefiniować wartość domyślną dla kolumny.
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
Jeśli chcesz zmodyfikować dt
kolumna podczas UPDATE
wiersz, potrzebujesz wyzwalacza
CREATE OR REPLACE TRIGGER trg_products
BEFORE INSERT OR UPDATE ON products
FOR EACH ROW
BEGIN
:new.dt := sysdate;
END;
Wyzwalacz zastąpi każdą wartość przekazaną jako część INSERT
lub UPDATE
instrukcja dla dt
kolumna. Domyślna wartość nie.