PRIMARY KEY制約で定義した列(列名:DATA_NO)に、ジェネレータ値をトリガーを利用して代入しようとしています。
プログラムでテーブルをINSERTしてPOSTすると『項目’DATA_NO’の値が必要です』とエラーになります。
-- トリガー --
SET TERM!!;
CREATE TRIGGER SET_DATA_NO FOR TABLE_A
BEFORE INSERT AS
BEGIN
NEW.DATA_NO = GEN_ID(GEN_DATA_NO, 1);
END!!
SET TERM;!!
どのようにしたら、トリガーでジェネレータ値を”DATA_NO”に(NOT NULL属性の列に)代入できるのか分かりません。
どなたか教えてください。宜しくお願いします。
>CREATE TRIGGER SET_DATA_NO FOR TABLE_A
でTABLE_Aに対してのトリガを表します。
> NEW.DATA_NO = GEN_ID(GEN_DATA_NO, 1);
NEW,OLDは項目の更新前、更新後の値を表すので、
これで、DATA_NOにジェネレータ値が入っているはずです。
NULLな列に対して、トリガーを適用してみました。
うまくいきました。
NOT NULLな列に対しては、やはり『値が必要です』のエラーが返されます。
『値が必要です』
ということなので、DATA_NOに適当に値を入れてテーブルをPOSTしてみました。
エラーも返らず、ジェネレータ値も入ってました。
これでよかったのかな??
スッキリしない感じですが、解決です。