MySQL でトリガーを使用して重複エントリを処理する方法
キーの長さの制限を超える一意の制約を持つテーブルを維持する場合、長いパラメーター文字列の場合と同様に、トリガーを使用してこれらの制約を強制できます。この記事では、重複エントリを処理し、例外をスローしてアプリケーションに通知する方法について説明します。
例外のスロー
例外をスローして C# コードにエラーを返すには、次のようにします。トリガー内で SIGNAL ステートメントを利用できます。次のコードは、その方法を示しています。
DECLARE msg VARCHAR(255); IF (SomeTestToFail = "FAIL!") THEN SET msg = "DIE: You broke the rules... I will now Smite you, hold still..."; SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg; END IF;
このコードは、エラー メッセージを設定し、SQL 状態 '45000' の例外を通知します。この例外を C# コードでキャプチャできます。
挿入の許可
重複エントリが存在しない場合に挿入を許可するには、次のコードを使用できます。
IF num_rows = 0 THEN -- Allow insert END IF;
このコードは、重複エントリの数 (num_rows) が 0 であるかどうかをチェックします。0 である場合、挿入は許可されます。続行してください。
以上がMySQL トリガーは重複エントリを処理し、C# アプリケーションに例外を通知するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。