私は HSQLDB を使用する統合テストを書いていますが、本番環境ではアプリケーションは Oracle DB を使用しています。Oracle では、特定のテーブルの主キーが空の場合、シーケンスの次の値を使用して入力されるというトリガーがあります。このトリガーが HSQLDB で機能する必要がありますが、スクリプトを両方の DB で機能させる方法を見つけることができるようです。以下は、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;
両方の DB で動作するようにトリガーを変更する方法はありますか?