ホームページ > データベース > mysql チュートリアル > C# で MySQL トリガーを使用して URL パラメーターのペアの一意性を強制し、重複エントリを処理するにはどうすればよいですか?

C# で MySQL トリガーを使用して URL パラメーターのペアの一意性を強制し、重複エントリを処理するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-08 20:35:17
オリジナル
603 人が閲覧しました

How Can I Use MySQL Triggers to Enforce Uniqueness on URL-Parameter Pairs and Handle Duplicate Entries in C#?

MySQL トリガーでの INSERT 操作の中止: URL パラメーターのペアに対する一意の制約の達成

URL とパラメーター文字列の組み合わせに一意性を適用するにはMySQL テーブルでは、トリガーを使用できます。ただし、エントリの重複を防ぐためにトリガーでの挿入操作を中止するには、特別な処理が必要です。この記事では、例外をスローし、トリガーでの挿入を条件付きで許可する手順について説明します。

C# への例外のスロー

重複エントリ エラーを C# コードに通知するにはを使用すると、トリガー内で MySQL の SIGNAL ステートメントを利用できます。以下は、urls_check_duplicates トリガーの更新されたコード スニペットです:

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 '45000' SET MESSAGE_TEXT = 'Duplicate URL-parameter pair found';
ELSE
    ... Allow insert ...
END
ログイン後にコピー

C# コードでは、MySqlException クラスを使用してトリガーによってスローされたエラーを処理できます:

try
{
    // Execute INSERT statement
}
catch (MySqlException ex)
{
    if (ex.Message.Contains("Duplicate URL-parameter pair found"))
    {
        // Handle duplicate entry error
    }
}
ログイン後にコピー

条件付き挿入許可

存在する場合にのみ挿入を許可します重複したエントリはありません。トリガー コード内の ELSE ブロックを削除するだけです。次のコードは、一意の URL パラメーター ペアのみを挿入します。

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 '45000' SET MESSAGE_TEXT = 'Duplicate URL-parameter pair found';
END
ログイン後にコピー

トリガーで SIGNAL と条件付き実行を組み合わせて使用​​することにより、MySQL テーブル内の URL パラメーター ペアに一意の制約を効果的に適用できます。

以上がC# で MySQL トリガーを使用して URL パラメーターのペアの一意性を強制し、重複エントリを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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