trigger.h
来自「关系型数据库 Postgresql 6.5.2」· C头文件 代码 · 共 75 行
H
75 行
/*------------------------------------------------------------------------- * * trigger.h * prototypes for trigger.c. * * *------------------------------------------------------------------------- */#ifndef TRIGGER_H#define TRIGGER_H#include "access/tupdesc.h"#include "access/htup.h"#include "nodes/parsenodes.h"#include "nodes/execnodes.h"#include "utils/rel.h"typedef uint32 TriggerEvent;typedef struct TriggerData{ TriggerEvent tg_event; Relation tg_relation; HeapTuple tg_trigtuple; HeapTuple tg_newtuple; Trigger *tg_trigger;} TriggerData;extern DLLIMPORT TriggerData *CurrentTriggerData;#define TRIGGER_EVENT_INSERT 0x00000000#define TRIGGER_EVENT_DELETE 0x00000001#define TRIGGER_EVENT_UPDATE 0x00000002#define TRIGGER_EVENT_OPMASK 0x00000003#define TRIGGER_EVENT_ROW 0x00000004#define TRIGGER_EVENT_BEFORE 0x00000008#define TRIGGER_FIRED_BY_INSERT(event) \ (((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \ TRIGGER_EVENT_INSERT)#define TRIGGER_FIRED_BY_DELETE(event) \ (((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \ TRIGGER_EVENT_DELETE)#define TRIGGER_FIRED_BY_UPDATE(event) \ (((TriggerEvent) (event) & TRIGGER_EVENT_OPMASK) == \ TRIGGER_EVENT_UPDATE)#define TRIGGER_FIRED_FOR_ROW(event) \ ((TriggerEvent) (event) & TRIGGER_EVENT_ROW)#define TRIGGER_FIRED_FOR_STATEMENT(event) \ (!TRIGGER_FIRED_FOR_ROW (event))#define TRIGGER_FIRED_BEFORE(event) \ ((TriggerEvent) (event) & TRIGGER_EVENT_BEFORE)#define TRIGGER_FIRED_AFTER(event) \ (!TRIGGER_FIRED_BEFORE (event))extern void CreateTrigger(CreateTrigStmt *stmt);extern void DropTrigger(DropTrigStmt *stmt);extern void RelationRemoveTriggers(Relation rel);extern HeapTuple ExecBRInsertTriggers(Relation rel, HeapTuple tuple);extern void ExecARInsertTriggers(Relation rel, HeapTuple tuple);extern bool ExecBRDeleteTriggers(EState *estate, ItemPointer tupleid);extern void ExecARDeleteTriggers(EState *estate, ItemPointer tupleid);extern HeapTuple ExecBRUpdateTriggers(EState *estate, ItemPointer tupleid, HeapTuple tuple);extern void ExecARUpdateTriggers(EState *estate, ItemPointer tupleid, HeapTuple tuple);#endif /* TRIGGER_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?