Maison > base de données > tutoriel mysql > Comment utiliser un déclencheur MySQL pour empêcher les futures insertions de dates de naissance ?

Comment utiliser un déclencheur MySQL pour empêcher les futures insertions de dates de naissance ?

Barbara Streisand
Libérer: 2025-01-16 18:41:10
original
240 Les gens l'ont consulté

How to Use a MySQL Trigger to Prevent Future Birthdate Inserts?

Utilisez un déclencheur MySQL pour empêcher l'insertion de futures dates de naissance

MySQL permet l'utilisation de déclencheurs pour empêcher les opérations d'insertion en fonction de conditions spécifiques. Un de ces cas est d'empêcher les insertions avec des dates de naissance à l'avenir.

Pour ce faire, vous pouvez créer un déclencheur BEFORE INSERT qui vérifie la valeur de la colonne birthdate :

<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.birthdate > CURRENT_DATE()
  THEN
    -- 如何阻止插入?
  END IF;
END;</code>
Copier après la connexion

Pour annuler une opération d'insertion dans une instruction IF, vous pouvez utiliser l'instruction SIGNAL de MySQL :

<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.birthdate > CURRENT_DATE()
  THEN
    SIGNAL SQLSTATE '45000'
      SET MESSAGE_TEXT = '由于出生日期为未来日期,因此不允许插入';
  END IF;
END;</code>
Copier après la connexion

Vous pouvez également modifier les données pour violer la contrainte, par exemple en définissant la valeur de la colonne birthdate sur NULL :

lorsque la date de naissance est dans le futur
<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.birthdate > CURRENT_DATE()
  THEN
    SET NEW.birthdate = NULL;
  END IF;
END;</code>
Copier après la connexion

Puisque la colonne birthdate est définie comme NOT NULL, l'opération d'insertion sera automatiquement rejetée.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal