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

Requêtes MySQL Discussion :

[aide Mysql] Copie de données d'une table


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut [aide Mysql] Copie de données d'une table
    Bonjour,

    Je souhaiterais faire une copie de données :
    Les données de la table qui est ratachée à l'id_user = 1 (le user par défaut)
    vers
    de nouvelles données (copiées) mais avec un id_user d'un nouveau membre exemple 30

    Structure de ma table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE `menu_gauche` (
      `id_lien` int(255) NOT NULL auto_increment,
      `id_menu` int(10) NOT NULL default '0',
      `nom_menu` varchar(50) NOT NULL default '',
      `lien` varchar(255) NOT NULL default '',
      `position` varchar(100) NOT NULL default '',
      `nom_lien` varchar(60) NOT NULL default '',
      `id_user` int(10) NOT NULL default '1',
      PRIMARY KEY  (`id_lien`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=185 ;
    j'ai éssayé ça mais j'ai une erreur de syntaxe et je ne sais pas si je peux utiliser la clause where dans ma requète ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO menu_gauche (`id_lien` , `id_menu` , `nom_menu` , `lien` , `position` , `nom_lien` , `id_user`) VALUES ('', (SELECT `nom_menu` , `lien` , `position` , `nom_lien` FROM menu_gauche) , '30') WHERE `id_user` = `1`
    J'ai créé des liens par défaut (id_user = 1) et je veux les copier pour un nouveau membre (id_user différent mais le reste pareil, ici dans l'exemple l'id_user = 30)

    d'avance merci pour votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO menu_gauche (`id_lien` , `id_menu` , `nom_menu` , `lien` , `position` , `nom_lien` , `id_user`)
    VALUES ('', (SELECT `nom_menu` , `lien` , `position` , `nom_lien`
    FROM menu_gauche) , '30')
    WHERE `id_user` = `1`
    Pour insérer des données provenant d'une autre table, la syntaxe à utiliser n'est pas INSERT INTO ... VALUES ... mais INSERT INTO ... SELECT ...
    La syntaxe du SELECT est la même que pour un SELECT classique.

  3. #3
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut
    Désolé mais le problème persiste :

    requête SQL:

    INSERT INTO menu_gauche( `id_lien` , `id_menu` , `nom_menu` , `lien` , `position` , `nom_lien` , `id_user` )
    VALUES (

    '', (

    SELECT `nom_menu` , `lien` , `position` , `nom_lien`
    FROM menu_gauche
    ), '30'
    )
    WHERE `id_user` = `1`
    MySQL a répondu:

    #1064 - Erreur de syntaxe pr賠de 'WHERE `id_user` = `1`' ࠬa ligne 1
    Si quelqu'un peut m'aider?

    merci

  4. #4
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    T'es sûr que l'on doit mettre un values ?

    Je viens de regarder la doc, et l'exemple donné il n'y a pas de values.
    http://dev.mysql.com/doc/refman/5.0/...rt-select.html

  5. #5
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut
    Ba le problème c'est que j'utilise une clé unique "id_lien" qui ne doit pas être renseigné sinon j'ai une erreur de doublons à chaque fois car je copie dans la même table
    C'est pour ça que faut que je trouve une solution.
    De toute manière l'erreur est apparrament sur la clause where nan?

  6. #6
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Dans ton exemple, il y a 7 champs à remplir, mais dans ton values, il n'y en a que 6.

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

Discussions similaires

  1. [MySQL] [php/mysql] Afficher les données d'une table (Débutant)
    Par Guns Of The Patriots dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 03/06/2010, 14h51
  2. [MySQL] PHP-MySQL: Insertion de donnée dans une table vide
    Par jrosenzw dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/03/2009, 02h11
  3. Réponses: 3
    Dernier message: 15/10/2008, 09h24
  4. Copie de données d'une table à une autre
    Par Jacques Bellavance dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/04/2008, 16h33
  5. Copie des données d'une table d'une base Interbase 6
    Par Djedjeridoo dans le forum InterBase
    Réponses: 6
    Dernier message: 02/02/2004, 09h39

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