我正在尝试在OpenOffice 4.1.3中从命令行插入一个触发器,我正在使用此配置: 工具 - >选项 - > OpenOffice - > Java - > “使用...”选中 - > classpath - >添加包 - > “从我这里下载的文件下载的文件(hsqldb.jar):Access2Base http://www.access2base.com/access2base.html
所以......这是我正在尝试执行的代码:
CREATE TRIGGER "t1" AFTER UPDATE ON "DesgloseCostes"
FOR EACH ROW
BEGIN ATOMIC
update "Costes" set "importenoiva" = (NEW."importe");
END
这给我以下错误:
1: Unexpected end of command: BEGIN in statement [CREATE TRIGGER "t1" AFTER UPDATE ON "DesgloseCostes"
FOR EACH ROW
BEGIN]
PS:我执行以下代码:工具 - > SQL ....
PS2:我在mysql中遇到了类似的问题,但我解决了它,将分隔符更改为//
这是一个示例代码:
CREATE TRIGGER "t1" AFTER UPDATE ON "DesgloseCostes"
FOR EACH ROW
BEGIN ATOMIC
update "Costes" set "importenoiva" = (NEW."importe");
END//
感谢您的帮助!
我正在放置新的hsqldb文件夹,但我有同样的错误,我试图选择这个文件夹,超级文件夹,超级/超级文件夹,并试图只是把hsqldb / lib / hsqldb .jar文件作为包,但仍然没有
答案 0 :(得分:1)
检查HSQLDB JAR版本并确保它晚于2.20版。触发器定义需要额外的一行REFERENCING ...
您的代码正在更新“Costes”表中的所有行。 UPDATE语句需要一个WHERE子句,其条件只能选择要更新的行。
CREATE TRIGGER "t1" AFTER UPDATE ON "DesgloseCostes"
REFERENCING NEW ROW AS NEWROW
FOR EACH ROW
BEGIN ATOMIC
update "Costes" set "importenoiva" = NEWROW."importe" WHERE ... ;
END//