Trigger table users Mysql

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai crée un trigger pour la table users .

J'importe via un script des utilisateurs d'une autre bdd dans la bdd de drupal afin de les insérer automatiquement. Pour cela j'ai crée des nouvelles tables dans la bdd de Drupal. Cela fonctionne très bien depuis plusieurs années.

Le trigger sert a inséré dans la table users_roles et la table que j'ai crée employes certaines informations a la creation d'un nouvel utilisateur.

Mon premier trigger que j'avais crée fonctionne parfaitement :

DROP TRIGGER IF EXISTS users_insert_drupal//
CREATE TRIGGER users_insert_drupal AFTER INSERT ON users
FOR EACH ROW BEGIN
         
      INSERT INTO users_roles (uid,rid)
         SELECT u.uid, r.rid
          FROM role r, users u, employes ep
             WHERE ep.fonct=r.name and ep.ref_pers=NEW.ref_uid  and u.uid = NEW.uid ;
  
END
//

J'ai remplacé ce trigger par celui qui suit et depuis lorsque l'on crée un nouvel utilisateur j'ai le message d'erreur suivant : "Erreur à la sauvegarde du compte utilisateur" qui apparaît dans drupal et l'utilisateur n'est pas inséré en base!

Lorsque je regarde le rapport d'erreurs de drupal j'ai l'erreur suivante :

Unknown table 'ep' in field list query: INSERT INTO users (name, mail, pass, status, language, timezone, init, created, access) VALUES ('pcsys', 'toto@free.fr', 'ab4f63f9ac65152575886860dde480a1', 1, 'fr', 7200, 'toto@free.fr', 1444291509, 1444291509) dans /var/www/intrac21/modules/user/user.module à la ligne 342.

Mon trigger :

DROP TRIGGER IF EXISTS users_insert_drupal//
CREATE TRIGGER users_insert_drupal AFTER INSERT ON users
FOR EACH ROW BEGIN
         
      INSERT INTO users_roles (uid,rid)
         SELECT u.uid, r.rid
          FROM role r, users u, employes ep
             WHERE ep.fonct=r.name and ep.ref_pers=NEW.ref_uid  and u.uid = NEW.uid ;
      IF ep.activite=QUOTE("Isle d'ene") or ep.activ='Fond Duire' THEN
         INSERT INTO users_roles (uid,rid)
            SELECT u.uid,19
               FROM users u, employes ep
                  WHERE   ep.ref_pers=NEW.ref_uid  and u.uid = NEW.uid ;
      ELSE
         INSERT INTO users_roles (uid,rid)
            SELECT u.uid, r.rid
               FROM role r, users u, employes ep
                  WHERE ep.activ=r.name and ep.ref_pers=NEW.ref_uid  and u.uid = NEW.uid ;       
      END IF;         
END
//

Pour info, j'ai des champs de type BLOB. Ce ne serait pas cela qui pose problème?

Une idée?
Merci

Version de Drupal :