0
我需要將userstamp獲取到表中,並且無法弄清楚DB2中的SESSION_USER變量如何處理GENERATED FOR EACH ROW ON UPDATE AS語句10.5(LUW)。DB2:如何始終生成語句以與會話用戶一起工作
設法使用具有迫使在UPDATE語句評估假變量的函數工作的落實:
CREATE OR REPLACE FUNCTION XXX.CURRENT_USER(tmp varchar(128))
SPECIFIC xxx.XXX_CURRENT_USER
RETURNS VARCHAR(128)
CONTAINS SQL DETERMINISTIC NO EXTERNAL ACTION
BEGIN
RETURN session_user ;
END
GO
CREATE TABLE xxx (
i INTEGER,
t VARCHAR(128) GENERATED ALWAYS AS (XXX.CURRENT_USER(i))
)
然而,將是不錯的有這樣一個基本的東西少「哈克」實施。
對於時間戳,有「FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP」語句,但似乎沒有其他寄存器變量的等價物。
幫助非常感謝
感謝您的反饋意見。不幸的是,它不適用於更新聲明。我想自動捕捉誰修改了行而不使用觸發器。 – JMX
@JMX。 。 。我不認爲你的代碼也會這樣做。我認爲你需要使用觸發器。 –
實際上,如果函數依賴於行值,如列「我」在這種情況下。 – JMX