IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Trigger d'insertion dans une nouvelle table


Sujet :

SQL Procédural MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 208
    Points : 88
    Points
    88
    Par défaut Trigger d'insertion dans une nouvelle table
    Bonjour, j'essaie par tout les moyens de réaliser un trigger, seulement, il me met que celui-ci contient une erreur, et j'ai eau cherché, je n'arrive pas à voir ou l'erreur est !

    Voici mon trigger :
    CREATE TRIGGER `ins_B` AFTER INSERT ON `A`
    FOR EACH ROW
    BEGIN
    DECLARE db_name VARCHAR(255);
    DECLARE name VARCHAR(255);

    SET name = SELECT A.name FROM A, B WHERE ( inserted.project_id = A.id);
    SET db_name = REPLACE(name||'_'||inserted.version,'.','_');
    INSERT INTO `C` (`version_id`,`database`) VALUES (inserted.version,db_name);
    END;

    Donc c'est un trigger, qui une fois un enregistrement réalisé dans une table B, récupère des informations de cette table (l'id), pour récupérer un nom dans la table A, et ensuite fais une concaténation et un remplacement entre le nom trouver et la nouvelle version.

    Voilà si quelqu'un pouvait m'aider svp, merci d'avance !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 208
    Points : 88
    Points
    88
    Par défaut
    le SGBD, c'est MySQL, pour tout dire pour le moment j'utilise WAMP en local.

    J'ai réussi ma requete à quelque chose près !
    Voilà je réalise une concaténation, à la place du replace, seulement, j'ai beau utiliser || ou + ou & pour concaténer à chaque fois le résultat n'est pas le bon.

    Par exemple au lieu d'obtenir pour ("test"+"4"), il me retourne "4", et avec & j'obtiens "0", et ||me génère carrément une erreur...

    Donc voilà, exactement ou j'en suis.

    Et encore merci.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 208
    Points : 88
    Points
    88
    Par défaut
    Désolé d'avoir mal placé le sujet, toujours est il que les fonctions pour :

    Concaténation : concat('a','b');

    Remplacement : replace(abc,'ab','b');

    Voilà, et mercie encore !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/11/2013, 14h20
  2. Problème d'insertion de données dans une nouvelle table
    Par sab_info dans le forum Développement
    Réponses: 3
    Dernier message: 04/02/2013, 10h40
  3. Trigger d'insertion dans une table parente
    Par Nadinette dans le forum PL/SQL
    Réponses: 4
    Dernier message: 28/11/2012, 17h48
  4. [base 9i] trigger pour insert dans une table identique
    Par gaultier dans le forum Oracle
    Réponses: 3
    Dernier message: 18/01/2012, 11h07
  5. Réponses: 9
    Dernier message: 20/10/2006, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo