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

MySQL Discussion :

mots réservés et IGNORE_SPACE


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Par défaut mots réservés et IGNORE_SPACE
    Bonjour à tous,

    je cherche à importer un fichier sql contenant en noms de champs des noms réservés comme ORDER,DESC etc. Ces mots sont entre quotes.
    J'ai effectué la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET GLOBAL sql_mode='ansi';
    pour mettre sql en mode ANSI, afin d'avoir l'option IGNORE_SPACE activée (et donc mes mots réservés acceptés).
    Ma requête marche et lorsque j'effectue cette autre requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @@global.sql_mode;
    L'option IGNORE_SPACE apparaît bien.
    Elle est donc normalement active.

    Pourtant lorsque j'essaye d'importer avec phpmyadmin le fichier voulu, j'obtiens le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO j_hbs_allhotels( id, title, hotel_numbers, caption, 
    ORDER , entry_date ) 
    VALUES ( 1, 'All Hotels module', 10, 'View a2z list of all hotels', 'asc', '2008-05-04' ) ;
     
    MySQL a répondu: 
     
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order, entry_date) VALUES 
    (1, 'All Hotels module', 10, 'View a2z list of all h' at line 1
    Mon mot réservé order n'est donc toujours pas pris en compte.

    L'un de vous sait-il pourquoi?
    Parce que là...je pensais avoir enfin trouvé la solution avec ignore_space après plusieurs heures de recherche...mais ça ne marche toujours pas...
    Je ne sais plus où chercher...

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    IGNORE_SPACE ne permet de traiter que les colonnes synonymes d'une fonction, et ORDER n'est pas une fonction mais un mot réservé : http://dev.mysql.com/doc/refman/5.0/...ved-words.html

    Il te reste l'option de mettre entre quotes (`ORDER`) sans préjuger des difficultés futures pour exploiter cette colonne...

    Tu peux aussi te dispenser d'indiquer le nom des colonnes sous certaines conditions : http://dev.mysql.com/doc/refman/5.0/fr/insert.html

    Mais il reste largement préférable de ne pas utiliser un mot réservé ou un nom de fonction pour nommer les 'objets' de la BD (ORDER -> SORT_ORDER)

  3. #3
    Membre éclairé Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Par défaut
    merci qi130 je n'avais pas bien compris l'utilisation de IGNORE_SPACE...mais ce que tu dis m'étonne, parce que le fichier que je ne réussis pas à importer vient d'un site officiel, alors je pensais que le problème venait d'un mauvais paramétrage de mon côté...
    mais bon je me suis débrouillée autrement j'ai modifié les noms de champ.

    bonne année à toi!

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

Discussions similaires

  1. java, mots réservés.
    Par Empty_body dans le forum JDBC
    Réponses: 3
    Dernier message: 15/12/2006, 16h39
  2. [ANTLR]gérer des mots réservés
    Par anitshka dans le forum EDI et Outils pour Java
    Réponses: 9
    Dernier message: 18/08/2006, 16h29
  3. Question sur l'utilisation du mot réservé static
    Par flash2590 dans le forum Langage
    Réponses: 4
    Dernier message: 10/04/2006, 00h20
  4. [MySQL] mot réservé dans un nom de champ
    Par dreamwanderer dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/12/2005, 20h54
  5. Year (mot réservé)
    Par Fir dans le forum Langage SQL
    Réponses: 10
    Dernier message: 21/02/2003, 12h16

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