触发函数对话框
触发器函数对话框¶
使用“触发器函数”对话框创建或管理触发器函数。触发器函数定义触发触发器时将调用的动作。
触发功能对话框通过以下对话框选项卡组织触发功能的开发:常规,定义,代码,选项,参数和安全性。 “SQL”选项卡显示由对话框选择生成的SQL代码。
使用“常规”选项卡中的字段来标识触发功能:
-
使用“名称”字段为触发功能添加描述性名称。该名称将显示在sdAdmin树控件中。请注意,触发功能将按字母顺序调用。
-
使用所有者旁边的下拉列表框选择将拥有触发器函数的角色。
-
从“架构”字段中的下拉列表框中选择触发功能将驻留在其中的架构的名称。
-
在“注释”字段中存储有关触发功能的注释。
单击“定义”选项卡以继续。
使用“定义”选项卡中的字段来定义触发功能:
-
使用“返回类型”旁边的下拉列表框可以指定与触发器函数关联的伪类型:
-
如果要创建DML触发器,请选择触发器。
-
如果要创建DDL触发器,请选择事件触发器r。
-
-
使用语言旁边的下拉列表框选择实现语言。默认值为plpgsql。
单击代码选项卡以继续。
- 使用“代码”字段来编写将在调用触发函数时执行的代码。
单击选项选项卡以继续。
使用“选项”选项卡中的字段来描述或修改触发功能的操作:
-
使用波动性旁边的下拉列表框选择以下选项之一:
-
VOLATILE表示即使在单个表扫描中,触发功能值也可以更改。
-
STABLE表示触发器函数无法修改数据库,并且在单个表扫描中它将针对相同的参数值一致地返回相同的结果。
-
IMMUTABLE指示触发器函数无法修改数据库,并且在给定相同的参数值时始终返回相同的结果。
-
-
切换以指示触发函数是否返回包含多行的集合。默认为“否”。
-
切换以指示每当触发器函数的任何参数为NULL时,触发器函数是否始终始终返回NULL。如果是,则在有NULL参数时不执行该函数;否则,函数不执行。而是自动假定为NULL结果。默认为“否”。
-
切换以指定将使用创建它的用户的特权来执行触发功能。默认为“否”。
-
开关以指示触发功能是窗口功能而不是普通功能。默认值为No。当前仅适用于用C编写的触发函数。
-
使用估计成本字段以cpu_operator_cost为单位指定一个正数,代表触发器函数的估计执行成本。如果函数返回一个集合,则这是返回的每一行的成本。
-
使用“估计的行数”字段来指定一个正数,以给出查询计划者应期望触发器函数返回的估计的行数。仅当声明函数返回一个集合时才允许这样做。默认假设为1000行。
-
?开关以指示触发功能是否有副作用。默认值为“否”。此选项只能由超级用户设置。
单击参数选项卡以继续。
使用“参数”选项卡中的字段可以指定在调用触发功能时将应用的设置。单击添加图标(+),将“名称/值”对添加到下表。
-
使用“名称”字段中的下拉列表框选择一个参数。
-
使用“值”字段来指定将与所选参数关联的值。此字段是上下文相关的。
单击添加图标(+)设置其他参数;要丢弃参数,请单击行左侧的垃圾桶图标,然后在“删除行”弹出窗口中确认删除。
单击安全性选项卡以继续。
使用“安全性”选项卡分配权限并定义安全性标签。
使用“权限”面板可将触发功能的使用权限分配给角色。单击添加图标(+)将角色添加到表中。
-
从“受让人”字段的下拉列表框中选择角色的名称。
-
在“权限”字段内单击。选中一个或多个特权左侧的框,以将所选特权授予指定用户。
-
当前用户(授予权限的默认授予者)显示在“授予者”字段中。
单击添加图标(+)分配其他权限;要放弃特权,请单击行左侧的垃圾桶图标,然后在“删除行”弹出窗口中确认删除。
使用“安全标签”面板可以定义应用于触发功能的安全标签。单击添加图标(+)添加每个安全标签选择:
-
在提供者字段中指定安全标签提供者。必须加载指定的提供者,并且必须同意提议的标签操作。
-
在“安全标签”字段中指定一个安全标签。给定标签的含义由标签提供者决定。 SeaboxSQL对标签提供者是否必须解释或如何解释安全标签没有任何限制;它仅提供了一种存储它们的机制。
单击添加图标(+)分配其他安全标签;要丢弃安全标签,请单击行左侧的垃圾桶图标,然后在“删除行”弹出窗口中确认删除。
单击“ SQL”选项卡以继续。
您在“触发器函数”对话框中的输入会生成一个SQL命令(请参见下面的示例)。使用“ SQL”选项卡进行检查;重新访问其他选项卡以修改SQL命令。
以下是由“触发器函数”对话框中的用户选择生成的sql命令的示例:
-
单击信息按钮(i)以访问联机帮助。
-
单击保存按钮以保存工作。
-
单击取消按钮退出而不保存工作。
-
单击重置按钮以恢复配置参数。