下面两个规则决定使用 SPI(或者任何其它 C 函数)的函数里面的数据修改的可视性:
在一个 SQL 命令执行期间,任何这个命令做的数据改变(或者是该命令调用的函数,包括触发器函数)都是命令本身所看不到的。 比如,在下面命令里
INSERT INTO a SELECT * FROM a;
插入的行是 SELECT 部分看不到的
命令 C 做的修改可以被 C 之后开始的所有命令看到,不管他们是在 C 里面(在执行 C 期间)还是在 C 完成后开始的。
下一节里包含一些例子,演示了这些规则的应用。