HSQL触发器:用户缺少权限或找不到对象:NEWROW.ID



我正在尝试在更新后在hsql中实现触发器其中我有一个名为组件表的表,在更新该表时,我想使用插入后触发器将其记录到另一个表中,我正在为此进行

CREATE TABLE IF NOT EXISTS "component"(
"id" INTEGER IDENTITY,
"name" VARCHAR(100),
"configuration" LONGVARCHAR,
"owner_id" INTEGER   );
CREATE TABLE IF NOT EXISTS "component_audit"(
"id" INTEGER IDENTITY,
"component_id" INTEGER ,
"action" VARCHAR(20),
"activity_time" BIGINT,
"user_id" INTEGER,
FOREIGN KEY ("component_id") REFERENCES "component"("id") ON UPDATE RESTRICT ON DELETE CASCADE
);
CREATE TRIGGER trig AFTER INSERT ON "component"
REFERENCING NEW ROW AS newrow
FOR EACH ROW
INSERT INTO "component_audit" ("id","component_id","action","activity_time","user_id")
VALUES (DEFAULT, 1, newrow.id, 123, 1);

运行HSQL时抛出错误

由:org.sqldb.HsqlException引起:用户缺少权限或对象未找到:NEWROW.ID

这是因为我的id列处于"id"中,因为我需要小写(默认HSQLDB为大写(如何传递我的可变子教程?

只需使用与CREATE TABLE语句中相同的命名即可。

CREATE TRIGGER trig AFTER INSERT ON "component"
REFERENCING NEW ROW AS newrow
FOR EACH ROW
INSERT INTO "component_audit" ("id","component_id","action","activity_time","user_id")
VALUES (DEFAULT, 1, newrow."id", 123, 1);

最新更新