我想創建一個「產品」表並有一列date
,當我向表中添加一些信息時是否可能添加當前日期?Oracle自動添加當前日期
如果是,請例如,這臺
create table products (
id number not null,
date number not null
);
我想創建一個「產品」表並有一列date
,當我向表中添加一些信息時是否可能添加當前日期?Oracle自動添加當前日期
如果是,請例如,這臺
create table products (
id number not null,
date number not null
);
假設
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
如果您希望在UPDATE
行修改dt
列,你需要一個觸發
CREATE OR REPLACE TRIGGER trg_products
BEFORE INSERT OR UPDATE ON products
FOR EACH ROW
BEGIN
:new.dt := sysdate;
END;
觸發將覆蓋傳遞中作爲INSERT
或UPDATE
語句的一部分的任何值dt
列。默認值不會。
我跑得幾乎一樣您的第一個示例,您將新列設置爲默認sysdate。這更新了所有以前的記錄到sysdate。有沒有辦法讓它們爲空,但是讓所有新記錄自動默認爲sysdate? – NealWalters
忘了提及,我在做ALTER TABLE來添加新的日期列(不是創建新表)。 – NealWalters
相關:http://stackoverflow.com/questions/12129051/what-is-the-sql-statement-oracle-to-alter-column-to-date-with-default-sysdate – Vadzim