1

Firebird で自動インクリメント列を作成するのに助けが必要です。

ここに私のテーブルがあります

列Seqidを自動インクリメントにしたい

create Table TS_PRODUCT_PRICEHISTORY
(
  Seqid int not null,
  Remarks varchar(100)
)

発電機を作りました

CREATE GENERATOR tsproductpricehistory_gen_id;

次に、トリガーを作成します

CREATE TRIGGER aitspph_id FOR TS_PRODUCT_PRICEHISTORY
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.SEQID IS NULL) THEN
NEW.SEQID = GEN_ID(tsproductpricehistory_gen_id,1);
END 

上記のコードでトリガーを作成しようとすると、このエラーが発生します

エラー: *** IBPP::SQLException *** コンテキスト: ステートメント::Prepare( CREATE TRIGGER aitspph_id FOR TS_PRODUCT_PRICEHISTORY ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.SEQID IS NULL) THEN NEW.SEQID = GEN_ID(tsproductpricehistory_gen_id,1) ) メッセージ: isc_dsql_prepare が失敗しました

SQL メッセージ: -104 無効なトークン

エンジン コード: 335544569 エンジン メッセージ: 動的 SQL エラー SQL エラー コード = -104 コマンドの予期しない終了 - 行 6、列 50

トリガーを作成するコードの何が問題なのかがわかりません。

4

1 に答える 1