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 :

Erreur Jeton inattendu. (near "SELECT"


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Points : 28
    Points
    28
    Par défaut Erreur Jeton inattendu. (near "SELECT"
    Bj à tous ,,

    J'essaye de faire cette requête pour mettre à jour une table ,,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO `sterap_produit_non_steril_beta` (`id`, `loc`, `nsn`, `descrip_nl`, `descrip_fr`, `marque`, `ref`) VALUES (NULL, 'loca', 'nsn', '', 'ald', '', '')
    SELECT * FROM `stock_mhns` WHERE `loca`<> '' AND `nsn` NOT IN (SELECT nsn FROM `sterap_produit_non_steril_beta` );
    Quand j'essaye les requêtes séparément , aucun problème !!
    Mais les deux j'ai une Erreur "Jeton inattendu. (near "SELECT" "
    Je ne suis pas un spécialiste d'sql mais je ne vois pas l'erreur de syntax
    Merci pour votre aide
    Stéphane

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    merci de donner la DDL des 2 tables, qu'on puisse tester (je suis pas non plus un spécialiste du SQL).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 802
    Points
    30 802
    Par défaut
    Il faudrait que tu nous expliques ce que tu essayes de faire...
    Si c'est une commande INSERT d'une ligne de valeurs constantes suivie d'une commande select pour vérifier le résultat de cette requête, il manque un ; à la fin de la première ligne de commande.
    Si tu souhaites ajouter dans la table sterap_produit_non_steril_beta des données provenant de la table stock_mhns, voici la bonne syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into table_cible (<colonne1>, colonne2, ...)
    select cln1, cln2, ...
    from table_source
    where ...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    De ce que j'ai compris, ça peut être :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into table_cible (<colonne1>, colonne2, ...)
    select cln1_de_table_source, "valeur2", ...
    from table_source
    where ...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 802
    Points
    30 802
    Par défaut
    Quelque chose comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    INSERT INTO sterap_produit_non_steril_beta 
        (   id
        ,   loc
        ,   nsn
        ,   descrip_nl
        ,   descrip_fr
        ,   marque
        ,   ref
        ) 
    SELECT  NULL        AS  id
        ,   stk.loca    AS  loc
        ,   stk.nsn     
        ,   ''          AS  descrip_nl
        ,   stk.ald     AS  descrip_fr
        ,   ''          AS  marque
        ,   ''          AS  ref
    FROM    stock_mhns  AS  stk 
    WHERE   stk.loca <> '' 
        AND stk.nsn  NOT IN 
            (   SELECT  pdt.nsn 
                FROM    sterap_produit_non_steril_beta  AS  pdt
            )
    ;
    Attention à ne pas confondre l'apostrophe ' qui encadre les chaines de caractères avec l'apostrophe inversée ` qui encadre les noms d'objets (tables, colonnes, ....) et qui n'est utile que lorsque ceux-ci ne respectent pas les règles de nommage (usage d'un mot réservé, présence de caractères accentués, d'espaces, ...)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Membre confirmé Avatar de isabelle.letrong
    Femme Profil pro
    Conseil - Consultante en systèmes d'information
    Inscrit en
    Juillet 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultante en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 109
    Points : 487
    Points
    487
    Par défaut
    Apparemment svan1812 n'utilise pas la forme INSERT....SELECT mais bien INSERT...VALUE.
    Il faut donc un ';' avant la clause SELECT.....

    Ceci étant la colonne 'id' valorisée à NULL j'aurai tendance à trouver cela plus que délinquant !

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 910
    Points
    38 910
    Billets dans le blog
    9
    Par défaut
    Bien que ce soit inhabituel, MySQL accepte cette syntaxe et l’interprète de la même façon que si la valeur de l'identifiant n'est pas fournie : l'identifiant est dans ce cas attribué par le moteur du SGBD.
    Certains SGBD n'acceptent pas SELECT null la portabilité n'est donc pas garantie

  8. #8
    Membre confirmé Avatar de isabelle.letrong
    Femme Profil pro
    Conseil - Consultante en systèmes d'information
    Inscrit en
    Juillet 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultante en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 109
    Points : 487
    Points
    487
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bien que ce soit inhabituel, MySQL accepte cette syntaxe et l’interprète de la même façon que si la valeur de l'identifiant n'est pas fournie
    ... jusqu'au jour où cela ne sera plus toléré par MySQL...

    Je suppose que 'id' est une PK auto-incrémentée. Dans ce cas il n'y a vraiment aucun, mais aucun, intérêt à citer cette colonne (et à la 'marquer NULL' ...) dans une clause INSERT. Il faut juste laisser MySQL s'en occuper seul.

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 910
    Points
    38 910
    Billets dans le blog
    9
    Par défaut
    Je ne dis pas le contraire et ne milite aucunement pour cette particularité de MySQL (coutumier des bizarreries et entorses à la norme SQL), c'est juste un fait

Discussions similaires

  1. [MySQL-5.6] MySQL : Erreur "Jeton inattendu" quand requête UPDATE
    Par spip93 dans le forum Requêtes
    Réponses: 9
    Dernier message: 24/12/2017, 19h41
  2. Erreur BDE inattendue
    Par hlmhv dans le forum Bases de données
    Réponses: 6
    Dernier message: 09/03/2008, 19h26
  3. erreur multiple rows in singleton select
    Par bassim dans le forum SQL
    Réponses: 5
    Dernier message: 20/12/2006, 16h56
  4. [10g] erreur ORA-01652 suite à INSERT-SELECT
    Par TG37140 dans le forum Administration
    Réponses: 5
    Dernier message: 18/12/2006, 19h45
  5. Erreur ORA-01555 sur un select
    Par LRI dans le forum Oracle
    Réponses: 2
    Dernier message: 13/05/2005, 10h42

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