VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

数据可见性规则

本节主要介绍触发器的数据可见性规则。

数据可见性规则

这些规则决定了这些 SQL 命令是否将能看见引发触发器的数据改变。

本节的规则适用于函数被声明为 VOLATILE 时。

被声明为 STABLE 或 IMMUTABLE 的函数在任何情况下将不能看到由调用命令所作出的更改。

  • 语句级触发器的可见性规则:一个语句所作的改变对于语句级 BEFORE 触发器都不可见,而所有修改对于语句级 AFTER 触发器都是可见的。

  • 行级触发器的可见性规则:

    • 导致触发器被引发的数据更改(插入、更新或删除)自然对行级 BEFORE 触发器中执行的 SQL 命令不可见。

    • 在同一个外层命令中所作的数据更改对行级 BEFORE 触发器中执行的 SQL 命令可见。

这些更改的时间顺序通常是不可预测的,一个影响多行的 SQL 命令可能以任何顺序访问这些行。

  • 同一个外层命令中 INSTEAD OF 触发器所作的数据更改对行级INSTEAD OF 触发器可见。

  • 外层命令所作的数据更改对行级 AFTER 触发器可见。