MySQL トリガーでの INSERT 操作の中止: 総合ガイド
URL とパラメーター文字列の組み合わせに基づく重複エントリを防ぐために、トリガーは次のことを行うことができます。雇用される。ただし、重複エントリを効果的に処理するには、例外処理メカニズムを適切に理解する必要があります。
C# への例外のスロー
C# でキャッチできるエラーを発生させるには、次のことができます。トリガー内で SIGNAL SQLSTATE ステートメントを使用します:
SIGNAL SQLSTATE '23000' SET MESSAGE_TEXT = 'Duplicate URL-Parameter combination detected.';
このステートメントは、エラー コードを含む SQL 例外をトリガーします。 「23000」とカスタム エラー メッセージ。
挿入の許可
重複エントリが許容されるシナリオの場合、トリガーは例外を発生させずに単純に終了できます。
IF num_rows = 0 THEN -- Allow insert ELSE -- Abort with an exception END IF;
を使用した改善されたソリューションSIGNAL
より堅牢なソリューションには、より柔軟なエラー処理メカニズムを提供する SIGNAL ステートメントの利用が含まれます。
CREATE TRIGGER `urls_check_duplicates` BEFORE INSERT ON `urls` FOR EACH ROW BEGIN DECLARE msg VARCHAR(255); IF (num_rows > 0) THEN SET msg = 'Duplicate URL-Parameter combination detected.'; SIGNAL SQLSTATE '23000' SET MESSAGE_TEXT = msg; END IF; END
このソリューションは、より明確なエラー メッセージを提供し、さまざまなバージョンとの互換性を保証します。データベースのバージョン
以上がMySQL トリガーは INSERT 操作中に重複エントリをどのように処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。