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;
删除触发器
DROP TRIGGER TEST_TRIGGER;
Hana studio中对应位置
实例-catalog-用户-triggers
post SAP-Garson
原文链接:https://blog.csdn.net/youniubi/article/details/118462199文章来自于网络,如果侵犯了您的权益,请联系站长删除!