VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

SHOW CREATE TRIGGER

功能描述

SHOW CREATE TRIGGER返回可用于重新创建命名触发器的确切字符串。

注意事项

该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。

语法格式

SHOW CREATE TRIGGER trigger_name

参数说明

trigger_name

触发器名。

返回结果集

字段 说明
Trigger 触发器名称。
sql_mode MySQL数据库在这里展示的是创建例程时绑定的sql_mode,Vastbase这里展示的是会话的值,因为Vastbase在创建例程时不会将例程与sql_mode绑定。
SQL Original Statement 触发器创建语句。
character_set_client client_encoding创建例程时系统变量的会话值。
collation_connection 创建触发器时客户端的排序规则。
Database Collation 数据库的排序集。

示例

1、创建源表及触发表。

CREATE TABLE test_trigger_src_tbl(id1 INT, id2 INT, id3 INT);
CREATE TABLE test_trigger_des_tbl(id1 INT, id2 INT, id3 INT);

2、创建触发器函数。

CREATE OR REPLACE FUNCTION tri_insert_func() RETURNS TRIGGER AS
           $$
           DECLARE
           BEGIN
                   INSERT INTO test_trigger_des_tbl VALUES(NEW.id1, NEW.id2, NEW.id3);
                   RETURN NEW;
           END
           $$ LANGUAGE PLPGSQL;

3、创建触发器。

CREATE TRIGGER insert_trigger
           BEFORE INSERT ON test_trigger_src_tbl
           FOR EACH ROW
           EXECUTE PROCEDURE tri_insert_func();

4、执行\x启用列式方式显示结果。

\x

5、查询触发器创建语句。

SHOW CREATE TRIGGER insert_trigger;

返回结果为:

-[ RECORD 1 ]----------+---------------------------------------------------------------------------------------------------------------------
Trigger                | insert_trigger
sql_mode               | ONLY_FULL_GROUP_BY,ANSI_QUOTES,pipes_as_concat,pad_char_to_full_length
SQL Original Statement | CREATE TRIGGER insert_trigger BEFORE INSERT ON test_trigger_src_tbl FOR EACH ROW EXECUTE PROCEDURE tri_insert_func()
character_set_client   | UTF8
collation_connection   | en_US.UTF-8
Database Collation     | en_US.UTF-8