云数据库 GAUSSDB-CREATE TRIGGER:注意事项
时间:2024-12-13 17:15:46
注意事项
- 当前仅支持在普通行存表上创建触发器,不支持在临时表、unlogged表等类型表上创建触发器。
- 如果为同一事件定义了多个相同类型的触发器,则按触发器的名称字母顺序触发它们。
- 触发器常用于多表间数据关联同步场景,对SQL执行性能影响较大,不建议在大数据量同步及对性能要求高的场景中使用。
- 当触发器满足如下条件时,触发语句能和触发器一起下推到DN执行并提升触发器执行性能:
- GUC参数enable_trigger_shipping和enable_fast_query_shipping开启。
- 源表触发器使用的触发器函数为plpgsql类型(推荐类型)。
- 源表与触发表分布键的类型、数量完全相同,均为行存表,且所属相同的NODEGROUP。
- 原INSERT/UPDATE/DELETE语句条件中包含所有分布键与NEW/OLD等值比较表达式。
- 原INSERT/UPDATE/DELETE语句在没有触发器的情况下就能query shipping。
- 源表上只有BEFORE INSERT FOR EACH ROW、AFTER INSERT FOR EACH ROW、BEFORE UPDATE FOR EACH ROW、AFTER UPDATE FOR EACH ROW、BEFORE DELETE FOR EACH ROW、AFTER DELETE FOR EACH ROW六类触发器,且所有触发器都可下推。
- 执行触发器语句时是用触发器创建者的身份进行权限判断的。
- 执行创建触发器操作的用户需要拥有指定表的TRIGGER权限或被授予了CREATE ANY TRIGGER权限。
- BEFORE触发的行级触发器函数可以返回一个NULL值,表示忽略对该行的操作,之后的触发器将不再执行,并且不会对该行产生INSERT/UPDATE/DELETE动作。
- BEFORE DELETE的情况下,触发器函数返回值NEW等于NULL。BEFORE INSERT的情况下,触发器函数返回值OLD等于NULL。BEFORE UPDATE的情况下,触发器函数返回值只有显示为NULL才是NULL值。
- 对于event为INSERT/UPDATE的触发器函数,正常返回值是NEW。如果返回一个非NULL的行,将修改插入或者更新的行。对于event为DELETE的触发器函数,正常返回值是OLD。
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0573.html
看了此文的人还看了
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格
推荐文章