Maison  >  Questions et réponses  >  le corps du texte

Comment écrire un déclencheur d'insertion MySql basé sur la valeur des données insérées ?

Je souhaite écrire un déclencheur pour les utilisateurs de table. Lorsqu'un nouvel utilisateur est ajouté, si son titre est lié à l'informatique, un enregistrement est créé dans le tableau Liste des contacts informatiques.

J'ai donc écrit le déclencheur suivant.

CREATE TRIGGER `test1` INSERT ON `Users` FOR EACH ROW BEGIN
IF INSTR(Title,'IT') > 0
THEN
INSERT INTO IT_contact_list (name,title) value (username,Title);
END IF;
END;

Il contient l'erreur "En-tête de colonne de champ inconnu dans la liste" mais il existe dans les tables Utilisateurs et IT_contact_list. Donc quel est le problème? Merci.

P粉277305212P粉277305212220 Il y a quelques jours352

répondre à tous(1)je répondrai

  • P粉448130258

    P粉4481302582024-04-04 10:30:24

    Fixé et testé sur établi. Essayez ceci :

    delimiter //
    drop trigger if exists test1 //
    CREATE TRIGGER `test1` AFTER INSERT ON `Users` FOR EACH ROW BEGIN
    IF INSTR(new.Title,'IT') > 0
    THEN
    INSERT INTO IT_contact_list (name,title) value (new.username,new.Title);
    END IF;
    END//
    
    insert into Users values('john','HardwareIT');
    insert into Users values('bill','Hardware engineer');
    select * From IT_contact_list;
    
    --result set:
     john    HardwareIT

    répondre
    0
  • Annulerrépondre