小编典典

Oracle自动添加当前日期

sql

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

如果是,请使用此表的示例

create table products (
id number not null,
date number not null
);

阅读 374

收藏
2021-03-17

共1个答案

小编典典

假如说

  1. 您的专栏实际上没有命名,date因为这是保留字
  2. 您的列实际上定义为date而不是number
  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

如果要在行时修改dtUPDATE,则需要一个触发器

CREATE OR REPLACE TRIGGER trg_products
  BEFORE INSERT OR UPDATE ON products
  FOR EACH ROW
BEGIN
  :new.dt := sysdate;
END;

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

2021-03-17