ホームページ >データベース >mysql チュートリアル >重複エントリを防ぐためにトリガーを使用して MySQL INSERT 操作を中止または許可する方法は?
トリガーによる MySQL INSERT オペレーションの中止
URL とパラメーター文字列の両方に基づいてテーブル内の重複エントリを防ぐために、トリガーを実装できます。 。このトリガーは、受信した INSERT 操作によって重複が生じるかどうかを評価し、必要に応じて例外をスローするか、それに応じて挿入を許可します。
操作の中止
の場合「... ABORT/C# に例外をスローする ...」の部分では、SIGNAL を使用できます。ステートメント:
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = 'Duplicate entry: URL and parameter string already exists.';
これにより、C# コードがキャッチできる MySQLException が発生します。
挿入を許可します
「... 「挿入を許可する...」部分を使用するには、単に SIGNAL ステートメントを省略します。重複エントリが検出されない場合、挿入は通常どおり続行されます。
改訂されたトリガー コード
これは、中止ロジックと挿入許可ロジックの両方を組み込んだ変更されたトリガー コードです。 :
CREATE TRIGGER urls_check_duplicates BEFORE INSERT ON urls FOR EACH ROW BEGIN DECLARE num_rows INTEGER; SELECT COUNT(*) INTO num_rows FROM urls WHERE url = NEW.url AND params = NEW.params; IF num_rows > 0 THEN SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = 'Duplicate entry: URL and parameter string already exists.'; END END
以上が重複エントリを防ぐためにトリガーを使用して MySQL INSERT 操作を中止または許可する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。