2017-04-01 148 views
1

规则在应用于INSERT时触发的顺序是什么?Postgresql规则命令

它们是在插入记录之后或之前完成的。

我想要做的是在另一个表中创建一个新记录,该记录将链接到被插入的记录。例如:

举个例子;要创建一个将创建一个新页面的规则,创建一个文档时,文档将始终以空页面记录开始。

我看上去很高,也许我问了一个错误的问题,但是我找不到任何有关RULES执行顺序的文档。在同一个表和相同事件类型

回答

0

Quote from the manual

的规则是按照字母顺序运行应用。

所以排序不取决于规则的类型,只取决于名称。

而且这也解释了如何在规则“适用”

意识到规则实际上只是一个命令转换机制,或者说命令宏是很重要的。 转换发生在命令执行开始之前

重点煤矿

所以规则不“之前”发生或语句运行“之后” - 它运行该声明代替


我所试图做的是创造另一个表中的新记录,这将链接到所插入的记录。

你一定要在后插入触发了点。忘记规则。

这也是手册建议的内容:

如果你真的想为每个物理行独立发生的操作,你可能需要使用一个触发器,而不是规则

+0

嗯,但是'ALSO'规则呢......除了原来的命令之外,它们都运行着,所以应该有一个命令,不是吗? –