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 :

Requete INSERT INTO (SELECT


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Par défaut Requete INSERT INTO (SELECT
    Bonjour,

    je suis en train de develloper un trigger dans lequel d'abord je vais récuperer le nom de la table A dans une autre table B et ensuite j'essaie de faire un INSERT INTO A mais ce la ne fonctionne pas.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TRIGGER INSERT_NOTICIASPR AFTER INSERT ON NOTICIASPR FOR EACH ROW 
    BEGIN 
    SELECT CNOM AS t_merge_correspondant FROM NOTICIASREF WHERE (NEW.DFECHA > DDEB AND NEW.DFECHA < DFIN);
    INSERT INTO t_merge_correspondant SELECT * FROM NOTICIASPR WHERE NCOMUNICADOPRID=NEW.NCOMUNICADOPRID; 
    END;
    Ma question se résume donc a
    "Peux t on faire un INSERT INTO (SELECT....) SELECT * FROM...."

    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Bonjour,

    Tu peux faire ça avec du SQL dynamique via un prepared statement : http://www.developpez.net/forums/showthread.php?t=66953

    Par contre si tu stockes des noms de tables dans une colonne c'est peut-être qu'il y a un problème de modélisation.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Par défaut merci, mais marche tjrs pas
    Merci pour ta reponse rapide je viens de modifier le code, ca ne fonctionne toujours pas a moins que j ai une erreur dans mon code, le pense que le probleme est t_merge_correspondant est la retour d'un SELECT et c'est considéré comme un tableau a une valeur certes mais un tableau quand meme.

    De ce fait un INSERT INTO tableau ca bug.

    Une solution????



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TRIGGER INSERT_NOTICIASPR AFTER INSERT ON NOTICIASPR FOR EACH ROW 
    BEGIN 
    SELECT CNOM AS t_merge_correspondant FROM NOTICIASREF WHERE (NEW.DFECHA > DDEB AND NEW.DFECHA < DFIN);
    SET @requete := CONCAT('INSERT INTO ',
                                    t_merge correspondant,
                                    ' SELECT * FROM NOTICIASPR WHERE NCOMUNICADOPRID=NEW.NCOMUNICADOPRID;');
     
        PREPARE requete FROM @requete;
        EXECUTE requete;
        DEALLOCATE PREPARE requete;
     
     
    END;

  4. #4
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Je pense que tu devrais plutôt passer par DECLARE t_merge_correspondant puis SELECT ... INTO t_merge_correspondant.

    Cf http://dev.mysql.com/doc/refman/5.0/...statement.html et l'exemple que je t'ai donné.

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

Discussions similaires

  1. [REQUETE] Question requete 'insert into' avec select
    Par Jeannot dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/08/2007, 17h52
  2. probleme dans un INSERT INTO...........SELECT
    Par briiice dans le forum Requêtes
    Réponses: 5
    Dernier message: 26/01/2006, 15h13
  3. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  4. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32

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