GBase 8s触发存储过程示例
GBase 8s的触发器不支持raise exception,条件判断等存储过程中可以使用的功能,若有需求,可以使用触发存储过程的功能。
以下以insert触发器为示例,创建触发存储过程:
1,创建相应的表
create table tab1
(
id integer,
name varchar(40),
primary key (id)
) ;
create table tab2
(
id integer,
name varchar(40),
uptime datetime year to second
default current year to second
) ;
2,创建触发存储过程中的存储过程
create procedure proc_tri_insert_tab1()
referencing new as new for tab1;
define pid int;
select count(id) into pid from tab2 where id = new.id;
if pid = 1 then
raise exception -746,0,'ID exists!';
end if;
end procedure;
3,创建触发存储过程中的触发器
create trigger tri_insert_tab1 insert on tab1
for each row(
execute procedure proc_tri_insert_tab1() with trigger references
);
当表tab1插入时,触发存储过程执行,当符合插入的id存在于tab2中时,raise exception。
> insert into tab1 values(2,'testssdadsfas');
746: ID exists!
错误在 1 行
第 1 字符
- 上一篇: GBase 8s使用内部用户
- 下一篇: merge into的字段限制