当前位置:网站首页>GBase 8c 触发器(一)
GBase 8c 触发器(一)
2022-07-03 02:18:00 【大壮十二】
触发器函数可以使用大部分可用过程性语言,包括PL/pgSQL、PL/Tcl、PL/Perl和PL/Python。触发器是数据库提供给程序员和数据分析员来保证数据完整性的一种机制,它是一种与数据表事件相关的特殊的存储过程。触发器的执行不是由程序调用,也不需要手工开启,而是由数据表上的事件来触发,当用户对一个数据表进行增、删、改操作时就会激活它执行。
一个触发器声明了当执行一种特定类型的操作时数据库应该自动执行一个特殊的函数。触发器可以被附加到表(分区或不分区)、视图和外部表。
在表和外部表上,触发器可以被定义为在INSERT、UPDATE或DELETE操作之前或之后被执行, 可以为每个SQL语句被执行一次或者为每个修改的行被执行一次。UPDATE触发器可以进一步地设置为只针对UPDATE语句的SET子句的特定列出发。触发器也可以被TRUNCATE语句触发。如果一个触发器事件发生,触发器函数会在适当的事件被调用来处理该事件。
在视图上,触发器可以被定义来取代INSERT、UPDATE或DELETE操作的执行。INSTEAD OF触发器对视图中需要被修改的每一行触发一次。触发器函数的职责是对底层的基本表执行必要的修改,并且在合适的时候返回被修改的行以便显示在视图中。视图上的触发器也可以被定义为对每个SQL语句执行一次,在INSERT\UPDATE或DELETE操作之前或之后。
触发器函数必须在触发器本身被创建之前被定义好。触发器函数必须被定义成一个没有参数的函数,并且返回类型为trigger(触发器函数通过一个特殊传递的TriggerData结构作为其输入,而不是以普通函数参数的形式)。
一旦一个合适的触发器函数被创建,就可以使用CREATE TRIGGER建立触发器。同一个触发器函数可以被用于多个触发器。
GBase 8c同时提供每行的触发器和每语句的触发器。对于一个每行的触发器,对于触发触发器的语句所修改的每一行都会调用一次触发器函数。相反,一个每语句的触发器对于其触发语句只被调用一次,而不管该语句影响了多少行。特别地,一个不影响任何行的语句仍然会导致任何可用每语句的触发器的执行。这两类触发器有时也分别被称作行级触发器和语句级触发器。TRUNCATE上的触发器只能定义在语句级,而不是每行定义。
触发器也可以根据它们是否在操作之前、之后触发, 或者被触发来取代操作来分类。它们分别指BEFORE触发器、AFTER触发器以及INSTEAD OF触发器。语句级BEFORE触发器在语句开始做任何事情之前被触发,而语句级AFTER触发器则在语句做完所有事情之后被触发。 这些触发器类型可以被定义在表、视图或外部表上。行级BEFORE触发器在每一个行被操作之前被触发, 而行级AFTER触发器在语句结束之后被触发(但在任何语句级AFTER触发器之前)。 这些触发器类型只能被定义在非分区表和外部表上,不能定义在视图上。INSTEAD OF触发器只能被定义在视图上,并且只能定义为行级; 它们立刻为视图中每一个被标识为需要被操作的行触发。
边栏推荐
- Y54. Chapter III kubernetes from introduction to mastery -- ingress (27)
- Redis: simple use of redis
- Use go language to realize try{}catch{}finally
- Return a tree structure data
- stm32F407-------DMA
- Trial setup and use of idea GoLand development tool
- [shutter] pull the navigation bar sideways (drawer component | pageview component)
- RestCloud ETL 跨库数据聚合运算
- GBase 8c 创建用户/角色 示例二
- awk从入门到入土(0)awk概述
猜你喜欢

Y54. Chapter III kubernetes from introduction to mastery -- ingress (27)

easyPOI

awk从入门到入土(0)awk概述

机器学习笔记(持续更新中。。。)

Solution for processing overtime orders (Overtime unpaid)

可視化yolov5格式數據集(labelme json文件)
![[shutter] hero animation (hero realizes radial animation | hero component createrecttween setting)](/img/e7/915404743d6639ac359bb4e7f7fbb7.jpg)
[shutter] hero animation (hero realizes radial animation | hero component createrecttween setting)

8 free, HD, copyright free video material download websites are recommended

《上市风云》荐书——唯勇气最可贵

Recommendation letter of "listing situation" -- courage is the most valuable
随机推荐
GBase 8c系统表pg_database
stm32F407-------IIC通讯协议
Awk from entry to burial (1) awk first meeting
COM和CN
Hard core observation 547 large neural network may be beginning to become aware?
4. 类和对象
Word word word
[Yu Yue education] reference materials of love psychology of China University of mining and technology
Qt之QComboBox添加QCheckBox(下拉列表框插入复选框,含源码+注释)
Codeforces Round #418 (Div. 2) D. An overnight dance in discotheque
4. Classes and objects
GBase 8c 函数/存储过程参数(二)
GBase 8c系统表-pg_conversion
机器学习流程与方法
Detailed analysis of micro service component sentinel (hystrix)
elastic stack
Su Shimin: 25 principles of work and life
How to deal with cache hot key in redis
stm32F407-------DMA
MySQL学习03