Oracle
觸發器是否“看到”在它被觸發的事務中所做的所有更改?
讓我詳細說明一下標題。
假設我們有兩個表,
t1
並且t2
。t2
有一個觸發器t2_trg
。相同的事務在 中插入/更新數據t1
,然後在 中插入/更新t2
。t2_trg
被解僱並開始做它的事情。這個觸發器能看到所有的變化t1
嗎?Ps 我找到了關於這個問題的其他主題,但它們主要是針對 SQL Server 的。
正常觸發器將看到在同一事務中的其他表中所做的更改。但是,如果您使用 創建觸發器(或其他可程式對象)
PRAGMA AUTONOMOUS_TRANSACTION
,它將在新事務的範圍內執行,並且無法看到“父”事務更改。