2016-06-25 40 views
-2

我有一個需求,我需要在每個插入和更新列上使用時間戳更新表列名'updated_date',所以如果插入記錄,然後創建一個插入行時間戳在update_date中,如果記錄正在更新,那麼我需要更新update_date列中的當前時間戳記。我想用DDL來處理它的oracle級別,而不是修改所有的查詢。在oracle中是否有相同的選項。帶有時間戳的自動更新oracle表列

+1

使用觸發器.. – MT0

回答

0

我想你應該至少觸發器作爲解決你的情況有一個非常簡單的解決辦法(如果我理解正確你的要求):

create or replace trigger trigger1 
before insert or update on t1 
for each row 
begin 
    :new.updated_date := systimestamp; 
end; 
/

這個觸發條件會在插入和更新,你會得到當前時間戳值在這兩種情況下 - 插入記錄或更新它並不重要。

,如果您有其他BEFORE觸發插入或更新您可以添加以下代碼:

if inserting or updating then 
    :new.updated_date := systimestamp; 
end if; 

請閱讀您的Oracle RDBMS版本的文檔觸發更多的用例。

P.S. DDL用於數據定義更改(例如alter table),不適用於DML插入/更新/刪除。