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 :

[MySQL 3.23.58] delete multi-tables


Sujet :

Requêtes MySQL

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut [MySQL 3.23.58] delete multi-tables
    Bonjour

    Voilà longtemps que je n'étais pas revenu sur ce forum
    Juste un petit problème de requête. Je veux supprimer des lignes dans plusieurs tables.
    Voilà la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delete amplicons.*, job.* from amplicons, job where job.id_job='7167fb7ba4806e855959d04' and job.id_job=amplicons.id_job;
    Seulement, MySQL m'avertit de l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR 1064: You have an error in your SQL syntax near 'amplicons.*, job.* from amplicons, job where job.id_job='7167fb7ba4806e855959d04' at line 1
    J'étais persuadé que ma syntaxe était correct.
    Où est mon problème ?

    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut

    essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    delete from amplicons, job 
    where job.id_job='7167fb7ba4806e855959d04' 
    and job.id_job=amplicons.id_job;

    Michel

  3. #3
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut ami du Nord
    Malheureusement, l'erreur est la même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ERROR 1064: You have an error in your SQL syntax near ' job
    where job.id_job='7167fb7ba4806e855959d04'
    and job.id_job=amplicons.id_jo' at line 1
    Merci toutefois de ta réponse.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Je ne sais pas exactement d'où vient ton problème, mais sur la doc je vois qu'il y a une syntaxe alternative, as-tu essayé ?
    K

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut KiLVaiDeN

    J'avais essayé toutes les manières proposées par la doc. Et toujours le même résultat. Là, je sèche. J'ai beau revoir mes tables, je ne situe pas le problème aussi bien dans la cohérence des données que dans la syntaxe.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  6. #6
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    Re,

    as tu la possibilité de changer de version?
    Il me semble que le delete en multi table n'est pas supportée avant la 4.0 (a vérifier)

    de plus j'ai des doutes sur ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    job.id_job='7167fb7ba4806e855959d04' 
    and job.id_job=amplicons.id_job;
    veux tu dire que amplicons.id_job doit valoir '7167fb7ba4806e855959d04' pour supprimer ?

    attention je dis peux etre des conneries jsuis mal réveillé le lundi matin

    bon courage

    Michel

  7. #7
    Membre émérite 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
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par Cybher
    Il me semble que le delete en multi table n'est pas supportée avant la 4.0 (a vérifier)
    En effet. Et sous MySQL 4.0+ la syntaxe serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dDELETE amplicons, job FROM amplicons, job 
    WHERE job.id_job='7167fb7ba4806e855959d04' 
    and job.id_job=amplicons.id_job;
    (le .* est sous-entendu vu qu'on delete une ligne entière, donc forcément toutes les colonnes )
    Pensez au bouton

  8. #8
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Hello Cybher

    Apparemment, tu as raison, en MySQL 3.23, je n'ai pas le droit de faire un delete multi-table. Et comme je n'ai pas la possibilité d'upgrader, je vais devoir faire table par table.
    Bon, je place le sujet en Résolu et voici ce que dit la doc à ce propos :
    From MySQL 4.0, you can specify multiple tables in the DELETE statement to delete rows from one or more tables depending on a particular condition in multiple tables. However, you cannot use ORDER BY or LIMIT in a multiple-table DELETE.
    @++

    Edit: grillé par Max' (ça se passe bien sous Debian ?)
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  9. #9
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    J'aurais essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DELETE FROM
       amplicons, job
    USING
       amplicons, job
    WHERE
           job.id_job = '7167fb7ba4806e855959d04'
       and amplicons.id_job = '7167fb7ba4806e855959d04'
    ;
    K

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

Discussions similaires

  1. delete multi-tables en hql
    Par gregounet dans le forum Hibernate
    Réponses: 3
    Dernier message: 05/05/2008, 19h27
  2. requete DELETE multi-tables
    Par Diwann dans le forum SQL
    Réponses: 10
    Dernier message: 23/02/2007, 17h38
  3. DELETE multi-tables avec jointures
    Par Xunil dans le forum Requêtes
    Réponses: 13
    Dernier message: 23/10/2006, 16h44
  4. Problème DELETE multi-tables
    Par Gwipi dans le forum Requêtes
    Réponses: 5
    Dernier message: 22/05/2006, 08h48
  5. erreur de syntaxe DELETE multi-tables
    Par yayacameleon dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/04/2006, 11h34

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