0

エントリをリストするテーブルと結果を含むテーブルの 2 つのテーブルがあります。

結果テーブルに対応するレコードを作成するエントリ テーブルに After トリガーを作成しようとしています。そのレコードのエントリ情報がすべて完了している場合。結果テーブルを作成する必要がある場合、列フリートは NULL ではありません。

IF (NEW.fleet IS NOT NULL) THEN

INSERT INTO race_results (race_id,yr,race_num,owner_id,checked_in,flt)VALUES(NEW.race_id,NEW.yr,NEW.race_num,NEW.owner_id,"N",NEW.fleet)ON DUPLICATE KEY UPDATE flt =NEW.fleet;

END IF

このコードは正常に実行されますが、NEW.fleet が NULL に等しい行で実行されると、#1329 エラーがスローされます。

前もって感謝します。

入力に基づいて、これは私の最新の試みです。まだ機能していないテーブルクラブは、最後に選択を成功させるための別のテーブルです。

BEGIN
DECLARE clb INT(10);
declare exit handler for not found

IF (NEW.fleet IS NOT NULL) THEN

INSERT INTO race_results (race_id,yr,race_num,owner_id,checked_in,flt)
VALUES(NEW.race_id,NEW.yr,NEW.race_num,NEW.owner_id,"N",NEW.fleet)
ON DUPLICATE KEY UPDATE flt =NEW.fleet;

END IF;
SELECT club_id INTO clb from clubs WHERE club_id=1;
END
4

1 に答える 1

0

「ハンドラーを使わずに」

ストアド プロシージャで次のクエリを使用すると、null ポインターの問題が発生しました...

Select col1 into Var from table1;

代わりに私はそれを

Set var = (select col1 from table1);

ここでは、致命的なエラーとしてスローされません...

更新された(new.fleet)値を変数に保存してから使用してみてください..解決することを願っています。

于 2012-07-28T16:13:04.727 に答える