我想创建一个表'产品'并且有一个列date
,当我向表中添加一些信息时,是否可能会添加当前日期?
如果是,请参阅此表的示例
create table products (
id number not null,
date number not null
);
答案 0 :(得分:25)
假设
date
,因为这是一个保留字date
而不是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
列的UPDATE
或dt
语句的一部分传入的任何值。默认值不会。