发布时间:2015-12-01 11: 12: 05
Navicat for PostgreSQL 触发函数可以使用 PL/pgSQL 创建及定义 PostgreSQL 触发器。触发函数是触发器启用函数的简单方法,当在数据库发生特定事件时触发器定义运行操作,以PL/pgSQL 触发函数作为触发器参考。
触发器的定义及关联的触发函数定义是两个不同的东西,触发器是以 CREATE TRIGGER 语句来定义,而触发函数是以 CREATE FUNCTION 语句来定义。点击 Navicat 主界面上的其他->触发函数,可打开触发函数对象列表。
Navicat for PostgreSQL 最新版下载地址:http://www.formysql.com/xiazai_postgresql.html
Navicat for PostgreSQL 触发函数定义:
定义包括一个有效的 SQL 过程语句,这可以是一个简单的语句,如 SELECT 或 INSERT,也可以是一个用 BEGIN 和END 写的复合语句,复合语句可以包含声明循环和其它控制结构语句。
参数:定义触发函数参数。
返回类型模式和返回类型:触发函数的返回类型。
Navicat for PostgreSQL 触发函数高级属性:
拥有者:触发函数的拥有者,支持 PostgreSQL 8.0 或以上版本。
语言:函数实施的语言名。可能是 C、内部或用户定义过程语言名。为了向后兼容,名可能是用单引号括着。
挥发性:这些属性可以查询优化器有关函数的性能。最多可指定一个选择。如果这些没有出现,默认的假设是 VOLATILE。
● IMMUTABLE:函数不能修改数据库,当给予相同的引数值时,总是返回相同的结果,也就是说,它不会做数据库查找,或以其他方式使用信息时不直接出现在其引数列表。如果使用该项,任何函数调用的全部常数引数可以立即替换函数值。
● STABLE:函数不能修改数据库,单一表扫描它会为相同的引数值返回相同的结果,但其结果可能会改变整个 SQL 语句,这是函数结果取决于数据库查找、参数变量等适当选择功能。此外,请注意函数的 current_timestamp 家族限制为稳定,因为它们的值不会在事务中改变。
● VOLATILE:函数值能在单一表扫描中改变,因此没有优化。少数数据库函数是易变的,例如 random()、 currval()、 timeofday()。但请注意,任何具有副作用的函数必须分类为易变,即使其结果是相当明确,防止调用不断优化,例如 setval()。
定义者安全性:指定函数运行时使用创建它的用户权限。
返回集:表示函数将返回一组项目,而不是一个单一项目。
严格:表示每当函数的引数是 null 时,总是返回 null。如果此参数被指定,当有 null 引数时,函数不会运行,相反 null 结果会自动假定。
估计耗费:正数估计函数的运行耗费,使用 cpu_operator_cost 单位。如果函数返回一个集,这是每返回行的耗费。如果耗费没有被指定,C 语言及内部函数假定 1 单位,其他全部语言为 100 单位。较大的值导致策划者应尽量避免比需要多的评估函数,支持 PostgreSQL 8.2 或以上版本。
估计行:正数估计策划者应预期函数返回的行数,这只允许当函数被声明为返回一个集,支持 PostgreSQL 8.2 或以上版本。
配置参数:当函数输入时设置到指定值的指定配置参数,当函数离开时还原到以前的值,支持 PostgreSQL 8.2 或以上版本。
关于 Navicat for PostgreSQL 的更多相关教程,可参考 Navicat 官网。
展开阅读全文
︾