我正在编写使用 HSQLDB 的集成测试,而在生产中应用程序使用 Oracle DB。在 Oracle 上,我有一个触发器,如果特定表的主键为空,则使用序列中的下一个值填充它。我需要这个触发器才能在 HSQLDB 中工作,但我似乎可以找到一种方法让脚本对两个数据库都有效;下面是 Oracle SQL Dev Studio 生成的触发器:
CREATE OR REPLACE TRIGGER "WFMEXTENSIONS"."WORK_TRG"
BEFORE INSERT ON WORK
FOR EACH ROW
BEGIN
<<COLUMN_SEQUENCES>>
BEGIN
IF INSERTING AND :NEW.WORK_ID IS NULL THEN
SELECT WORK_SEQ.NEXTVAL INTO :NEW.WORK_ID FROM SYS.DUAL;
END IF;
END COLUMN_SEQUENCES;
END;
/
HSQL DB 正在“Oracle 兼容模式”下运行,使用
SET DATABASE SQL SYNTAX ORA TRUE;
任何想法如何修改触发器以在两个数据库上工作?