HSQLDB CREATE触发器在声明中引发异常:错误或缺少数据影响子句:修改SQL

HSQLDB CREATE触发器在声明中引发异常:错误或缺少数据影响子句:修改SQL,sql,triggers,hsqldb,Sql,Triggers,Hsqldb,我想为一个表创建一个触发器,每当插入新行时,该触发器就会将一行插入到另一个表中 创建表S.A( ID数字(18)不为空, OTHERID数字(18)不为空, ); 创建表S.B ( ... 辅助数字(18)不为空, ... ); 在S.B.上插入之前创建触发器mytrigger 为每行引用NEW作为newrow 在S.A(ID,OTHERID)值中插入(newrow.AID,newrow.AID); 但是,我得到了触发器语句的一个异常: Caused by: org.hsqldb.HsqlEx

我想为一个表创建一个触发器,每当插入新行时,该触发器就会将一行插入到另一个表中

创建表S.A(
ID数字(18)不为空,
OTHERID数字(18)不为空,
);
创建表S.B
(
...
辅助数字(18)不为空,
...
);
在S.B.上插入之前创建触发器mytrigger
为每行引用NEW作为newrow
在S.A(ID,OTHERID)值中插入(newrow.AID,newrow.AID);
但是,我得到了触发器语句的一个异常:

Caused by: org.hsqldb.HsqlException: wrong or missing data impact clause in declaration: MODIFIES SQL
    at org.hsqldb.error.Error.error(Unknown Source)
    ...

文档中没有提到必须在该语句中使用modifiessql。有人能告诉我如何正确地写这个触发器吗?

我认为这是相关的,从

BEFORE触发器无法修改数据库的其他表。所有BEFORE触发器都可以通过抛出异常来否决操作

鉴于

AFTER触发器还可以执行其他数据更改,例如,将其他行插入不同的表中以进行数据审核


i、 e.如果要插入到另一个表中,您需要将策略更改为
之后的
,或者更改为
而不是
触发器。

修改SQL数据仅用于更改其他表中数据的过程。由于触发器只能是后触发器,错误表明此前触发器修改数据,因此不合适。