HSQLDB触发器 - 引用新表

时间:2014-07-31 12:39:29

标签: sql triggers hsqldb

我有以下表格(简化)

table A (
    id,
    fingerprint)

table B (
    a_id,
    value)

我有以下触发器

CREATE TRIGGER "makeFingerPrint" AFTER INSERT ON "B"
    FOR EACH STATEMENT
       UPDATE "A" SET
           fingerprint = (select sum(value) from "b" where a_id = id)
       WHERE fingerprint IS NULL

这适用于初次插入,并确保A&#39的列'指纹'将为NULL。

我尝试做的是引用新表(所有行)并使用这些更新,但我没有找到如何引用newTable的方法。

我试图找到一些东西,但没有运气,引用新表并做

CREATE TRIGGER makeFingerPrint AFTER INSERT ON "B"
   REFERENCING NEW TABLE AS newTable   (with and without quotes)
   FOR EACH STATEMENT
   UPDATE "A" SET
           fingerprint = (select sum(value) from "b" where a_id = id)
       WHERE id IN (select a_id from "newTable")

我总是遇到错误'用户缺少权限或找不到的对象:newTable'

有什么想法?甚至可以以某种方式查询引用表?

1 个答案:

答案 0 :(得分:0)

使用SQL编写的触发器无法实现这一点。