- 3
- 0
- 约9.77千字
- 约 9页
- 2019-11-09 发布于湖北
- 举报
用 C 写触发器
本章描述触发器函数的低层细节。只有当你用 C 书写触发器函数的时候才需要这些信息。 如果你用某种高级语言写触发器,那么系统就会为你处理这些细节。 在大多数情况下,你在书写自己的 C 触发器之前应该考虑使用过程语言。 每种过程语言的文档里面有关于如何用该语言书写触发器的解释。
触发器函数必须使用版本 1(version 1)的函数管理器接口。
当一个函数被触发器管理器调用时,它不会收到任何普通参数,而是收到一个指向TriggerData结构的环境指针。 C 函数可以通过执行实际上被扩展为
((fcinfo)-context != NULL IsA((fcinfo)-context, TriggerData))
的宏
CALLED_AS_TRIGGER(fcinfo)
CALLED_AS_TRIGGER(fcinfo), 来判断自己是否从触发器管理器中调用的。 如果此宏返回真(TRUE),则可以安全地把fcinfo-context转换成类型 TriggerData * 然后使用这个指向 TriggerData 的结构。 函数本身绝不能更改 TriggerData 结构或者它指向的任何数据。
struct TriggerData 是在 commands/trigger.h 里面定义的:
typedef struct TriggerData
{
No
原创力文档

文档评论(0)