首页 > 解决方案 > 在 HANA DB 中创建“而不是插入”触发器的语法

问题描述

我正在使用这种语法

CREATE TRIGGER tgBook 
INSTEAD OF INSERT ON "SYSTEM"."BOOK"
FOR EACH ROW
BEGIN
INSERT INTO "SYSTEM"."CLASSA" (rollNo, name, percentage)
SELECT rollNo, name, percentage
FROM INSERTED
INSERT INTO "SYSTEM"."ClassB" (english, maths)
SELECT english, maths
FROM INSERTED
END

我收到此错误

Could not execute 'CREATE TRIGGER tgBook INSTEAD OF INSERT ON "SYSTEM"."BOOK" FOR EACH ROW BEGIN INSERT INTO ...'
SAP DBTech JDBC: [257]: sql syntax error: incorrect syntax near "INTO": line 8 col 8 (at pos 206)

我正在使用 HANA DB 并且在 HANA DB 中正常的 SQL 触发器查询不起作用,所以我需要正确的语法欢迎任何建议谢谢

标签: hibernatehana

解决方案


我得到了解决方案,实际上语法是错误的。实际的语法是

CREATE TRIGGER "SYSTEM"."tgBook" INSTEAD OF INSERT ON "SYSTEM"."BOOK" REFERENCING NEW ROW NEW FOR EACH ROW 
BEGIN INSERT 
INTO ClassA (rollNo,
    name,
    percentage) VALUES(:NEW.rollNo,
     :NEW.name,
     :NEW.percentage)
;
 INSERT 
INTO ClassB (rollNo,
    english,
    maths) VALUES(:NEW.rollNo,
     :NEW.english,
     :NEW.maths)
;

END
;

推荐阅读