2011-07-27 24 views
1

我想要的很簡單。我希望我的一個表在每次對其進行SELECT操作時更新其行。所以我這樣做了:在SQL中定義合適的觸發器類型的問題

CREATE OR REPLACE TRIGGER dateSelectionTrain BEFORE SELECT ON Train FOR EACH ROW 
BEGIN 
    UPDATE Train 
    SET derniereSelection = SYSDATE 
    WHERE numero = :NEW.numero; 
END; 

我只想更新在SELECT中選擇的行。

當我試圖創建觸發器我有這個消息:

ORA-04072: invalid trigger type 

所以我想知道,他們是任何方式都每次選擇更新表由?

在此先感謝

+0

我從來沒有聽說過任何數據庫,當你選擇時會使觸發器工作。 SELECT不是一個更改數據的操作。你爲什麼要這麼做? – HLGEM

+0

在我的數據庫中,我正在管理乘車旅行的列車。當我從列表中選擇火車列車時,如果此特定列車自上次選擇以來進行了任何行程,我希望更新列車距離列。 – nevero

+0

如果您需要存儲此派生值,那麼記錄行程時爲何不存儲它?這將是正常的做事方式。 –

回答

1

我不相信Oracle支持SELECT類型的觸發器。

+0

在這種情況下,他們的某種方式(除了觸發也許)來實現這一點? – nevero

+0

不是。您可以審覈選擇,然後嘗試挖掘審計線索 - 但您無法通過發出SELECT來更新表。 –