テーブル「製品」を作成し、列を作成したいのですが、テーブルdate
に情報を追加すると現在の日付が追加される可能性はありますか?
はいの場合、この表の例を教えてください
create table products (
id number not null,
date number not null
);
仮定して
date
それは予約語であるため、列には実際には名前が付けられていませんdate
ではなくa として定義されていますnumber
列のデフォルト値を定義できます。
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
dt
行を変更するときに列を変更する場合UPDATE
は、トリガーが必要です
CREATE OR REPLACE TRIGGER trg_products
BEFORE INSERT OR UPDATE ON products
FOR EACH ROW
BEGIN
:new.dt := sysdate;
END;
INSERT
トリガーは、列のorUPDATE
ステートメントの一部として渡された値をオーバーライドしdt
ます。デフォルト値はそうではありません。