| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 35. 觸發器 | Fast Forward | Next |
如果你在你的觸發器函數裡執行 SQL 命令,並且這些命令訪問觸發器所在的表, 那麼你必須知道觸發器的可視性規則,因為這些規則決定這些 SQL 命令是否能看到觸發觸發器的數據改變。 簡單說:
導致觸發器觸發的數據改變(插入,更新,或者刪除)通常是不能被一個before觸發器裡面執行的 SQL 命令看到的, 因為它還沒有發生。
不過,在 before 觸發器裡執行的 SQL 命令將會看到在同一個外層命令前面處理的行做的數據改變。 這一點需要我們仔細,因為這些改變時間的順序通常是不可預期的; 一個影響多行的 SQL 命令可能以任意順序訪問這些行。
在一個 after 觸發器被觸發的時候,所有外層命令產生的數據改變都已經完成, 可以被所執行的 SQL 命令看到。
有關數據可視性規則的更多信息可以在 Section 41.4 找到。 Section 35.4 裡的例子包含這些規則的演示。