GBase 8s触发存储过程示例

GBase 8s的触发器不支持raise exception,条件判断等存储过程中可以使用的功能,若有需求,可以使用触发存储过程的功能。

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
  ) ;


create procedure proc_tri_insert_tab1()
referencing new as new for tab1;
  define pid int;
  select count(id) into pid from tab2 where id =;
  if pid = 1 then
    raise exception -746,0,'ID exists!';
  end if;
end procedure;


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, 存储过程, 触发存储过程, 触发器