Oracle自动添加当前日期

Wiz*_*ard 9 sql oracle

我想创建一个表'产品'并有一个列date,当我向表中添加一些信息时,是否可能会添加当前日期?

如果是,请参见此表的示例

create table products (
id number not null,
date number not null
);
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 25

假如说

  1. 您的列实际上没有命名,date因为这是一个保留字
  2. 您的列实际上定义为a date而不是anumber
  3. 您希望在插入新行时填充列

您可以为列定义默认值.

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
Run Code Online (Sandbox Code Playgroud)

如果要在行中修改dtUPDATE,则需要触发器

CREATE OR REPLACE TRIGGER trg_products
  BEFORE INSERT OR UPDATE ON products
  FOR EACH ROW
BEGIN
  :new.dt := sysdate;
END;
Run Code Online (Sandbox Code Playgroud)

触发器将覆盖作为列的INSERTor UPDATE语句的一部分传入的任何值dt.默认值不会.