声明 SQL 的关键字作为相关名称

如果您在触发操作列表中的以下任何子句中使用 INSERT 、DELETE 、UPDATE 或 EXECUTE 关键字作为 correlation 标识符,则必须使用所有者名称和/或名称限定它们。

当您在触发操作中包含这些关键字时,如果这些关键字被限定,则会产生语法错误。

如果您使用关键字作为列名,则必须使用表名限定它;例如 table.update。如果表名称和列名称都是关键字,则必须使用所有者名称限定它们(例如, owner.insert.update)。如果所有者名称、表名称和列名称都是关键字,则必须用引号将所有者名称引起来;例如 'delete'.insert.update。(这些是将保留字作为标识符的一般规则,而不是触发器的特例。如果避免使用 SQL 的关键字作为标识符,则您的代码会更易阅读和维护。)

唯一的例外是这些关键字是列表汇总的第一个表或列名称时,且您没有限定它们。例如,不需要限定以下语句中的 delete ,因为它是 INTO 子句列出的第一列:
CREATE TRIGGER t1 UPDATE OF b ON tab1
        FOR EACH ROW (EXECUTE PROCEDURE p2() INTO delete, d);
在以下语句显示的示例中,您必须限定列名称或表名称: