Sap Hana触发器

标准语法

CREATE [ OR REPLACE ] TRIGGER <trigger_name> <trigger_action_time> <trigger_event_list>
   ON <subject_table_name>
   [ REFERENCING <transition_list> ] 
   [ <for_each> ] 
   [ <trigger_order_clause> ]
   [ ONLINE ]
      BEGIN 
         [ <trigger_decl_list> ]
         [ <proc_handler_list> ]
         <trigger_stmt_list>
      END

案例说明

/*
该触发器用来在HANA上实现MYSQL的主键自增功能
*/
CREATE OR REPLACE TRIGGER TEST_TRIGGER --OR REPLACE:可省略,TEST_TRIGGER:触发器名
	BEFORE INSERT ON TEST_TABLE        --触发事件为:在向表TEST_TABLE中INSERT/UPDATE/DELETE数据前
	REFERENCING NEW ROW AS MYNEWROW    --将触发器的行/表对象作为一个别名:MYNEWROW,ROW/TABLE
	FOR EACH ROW   					   --行级触发器,默认为语句级触发器 ROW/STATEMENT 
	FOLLOWS TEST_TRIGGER1              --FOLLOWS|PRECEDES:该触发器排在触发器TEST_TRIGGER1之后/之前,该语句针对一个表有多个触发器,且需要先后的情况下
BEGIN 
	DECLARE NEW_ID NUMBER(10);         --声明变量NEW_ID
	SELECT TEST_SEQ.NEXTVAL INTO NEW_ID FROM DUMMY;  --TEST_SEQ:序列,DUMMY:HANA默认表,类似ORACLE的DUAL,NEXTVAL:序列的下一个值
	MYNEWROW.ID = :NEW_ID;             --将NEW_ID的值赋值给表TEST_TABLE的ID
END;

Hana序列教程传送门

删除触发器

DROP TRIGGER TEST_TRIGGER;

Hana studio中对应位置

实例-catalog-用户-triggers在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值