ホームページ > データベース > mysql チュートリアル > MySQL トリガーは INSERT 操作中に重複エントリをどのように処理できますか?

MySQL トリガーは INSERT 操作中に重複エントリをどのように処理できますか?

Patricia Arquette
リリース: 2024-12-10 21:53:10
オリジナル
875 人が閲覧しました

How Can MySQL Triggers Handle Duplicate Entries During INSERT Operations?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート