2017-04-01 95 views
1

規則在應用於INSERT時觸發的順序是什麼?Postgresql規則命令

它們是在插入記錄之後或之前完成的。

我想要做的是在另一個表中創建一個新記錄,該記錄將鏈接到被插入的記錄。例如:

舉個例子;要創建一個將創建一個新頁面的規則,創建一個文檔時,文檔將始終以空頁面記錄開始。

我看上去很高,也許我問了一個錯誤的問題,但是我找不到任何有關RULES執行順序的文檔。在同一個表和相同事件類型

回答

0

Quote from the manual

的規則是按照字母順序運行應用。

所以排序不取決於規則的類型,只取決於名稱。

而且這也解釋瞭如何在規則「適用」

意識到規則實際上只是一個命令轉換機制,或者說命令宏是很重要的。 轉換髮生在命令執行開始之前

重點煤礦

所以規則不「之前」發生或語句運行「之後」 - 它運行該聲明代替


我所試圖做的是創造另一個表中的新記錄,這將鏈接到所插入的記錄。

你一定要在後插入觸發了點。忘記規則。

這也是手冊建議的內容:

如果你真的想爲每個物理行獨立發生的操作,你可能需要使用一個觸發器,而不是規則

+0

嗯,但是'ALSO'規則呢......除了原來的命令之外,它們都運行着,所以應該有一個命令,不是嗎? –