Maison >base de données >tutoriel mysql >Comment puis-je utiliser les déclencheurs MySQL pour renforcer l'unicité des paires URL-paramètres et gérer les entrées en double en C# ?

Comment puis-je utiliser les déclencheurs MySQL pour renforcer l'unicité des paires URL-paramètres et gérer les entrées en double en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-08 20:35:17620parcourir

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

Abandon des opérations INSERT dans les déclencheurs MySQL : réalisation de contraintes uniques sur les paires URL-paramètres

Pour appliquer l'unicité à la combinaison d'URL et de chaîne de paramètre dans une table MySQL, des déclencheurs peuvent être utilisés. Cependant, l'abandon des opérations d'insertion dans un déclencheur pour éviter les entrées en double nécessite une gestion spécifique. Cet article vous guide à travers les étapes pour lever des exceptions et autoriser conditionnellement les insertions dans votre déclencheur.

Lancement d'exceptions vers C#

Pour signaler une erreur d'entrée en double dans le code C# , vous pouvez utiliser l'instruction SIGNAL de MySQL dans le déclencheur. Vous trouverez ci-dessous l'extrait de code mis à jour pour le déclencheur 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

Dans votre code C#, vous pouvez gérer l'erreur générée par le déclencheur à l'aide de la classe MySqlException :

try
{
    // Execute INSERT statement
}
catch (MySqlException ex)
{
    if (ex.Message.Contains("Duplicate URL-parameter pair found"))
    {
        // Handle duplicate entry error
    }
}

Autorisation d'insertion conditionnelle

Pour autoriser l'insertion uniquement s'il n'y a pas de doublon entrée, supprimez simplement le bloc ELSE dans le code de déclenchement. Le code suivant insère uniquement des paires de paramètres URL uniques :

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

En utilisant une combinaison de SIGNAL et d'exécution conditionnelle dans le déclencheur, vous pouvez appliquer efficacement la contrainte unique sur les paires de paramètres URL dans votre table MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn