Abandon des opérations MySQL INSERT avec des déclencheurs
Pour éviter les entrées en double dans une table basée à la fois sur l'URL et la chaîne de paramètres, un déclencheur peut être implémenté . Ce déclencheur évaluera si une opération INSERT entrante entraînerait une duplication et, si nécessaire, lèvera une exception ou autorisera l'insertion en conséquence.
Annulation de l'opération
Pour la partie "... ABORT/throw exception to C#...", vous pouvez utiliser l'instruction SIGNAL :
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = 'Duplicate entry: URL and parameter string already exists.';
Cela déclenchera une exception MySQL que votre Le code C# peut attraper.
Autoriser l'insertion
Pour la partie "... Autoriser l'insertion...", omettez simplement l'instruction SIGNAL. L'insertion se déroulera comme d'habitude si aucune entrée en double n'est détectée.
Code de déclenchement révisé
Voici le code de déclenchement modifié intégrant à la fois la logique d'abandon et la logique d'autorisation d'insertion. :
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
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!