maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 2009
-
21 mai 2008 à 13:40
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 2009
-
30 juin 2008 à 09:23
Bonjour à la communauté CS SQL,
Suite à un problème qui m'arrive aujourd'hui une question me vient à l'esprit j'ai une base de données MySQL j'ai déjà remarqué que des fois dans les requètes il y des accents grave (`) autours des noms de champs je ne me suis jamais posé la question et on ne m'en a jamais parlé en cours donc pour moi c'est qu'il n'y avait aucun interêt à ça.
Aujourd'hui quand j'ai voulu faire une requête j'ai eu en réponse une erreur et que quand mon champ est entre accent grave je n'ai plus d'erreur.
Pourquoi???
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 23 mai 2008 à 23:43
Salut
Il me semble c'est des notions de sécurité
et pour gérer des nom de table à espace (peut être possible en mysql)
comme le permet sqlserver ou access par exemple
mais avec la syntaxe
select * from [ma table]
Je n'arrive pas a trouvé de justification dans la documentation, mais ca foit être indiqué
Farfadh
Messages postés68Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 7 juillet 20084 29 juin 2008 à 04:38
Effectivement, on peut créer des tables en utilisant des caractères comme les espacements qui normallement provoqueraient des erreurs de script. Il faut alors effectivement utiliser ces apostrophes inversées. Inutile des les préciser systématiquement, mais par exemple dans le cas où le nom d'une table n'est pas créee manuellement par tes soins mais par un script et que son nom est susceptible de contenir des caractères spéciaux, il est plus prudent de les utiliser.
J'ai créé une fois un site où les utilisateurs avaient chacun leur compte. Chacun des ces utilisateurs possédaient une boîte de messages privés. Or comme mes requêtes se font systématiquement pour un utilisateur donné, il était inutile de mettre tous les messages du site sur la même table. J'ai donc créé une table par utilisateur pour accélérer les requêtes. Mais comme je ne savais pas à l'époque rappatrier la dernière clé primaire créé automatiquement par AUTO_INCREMENT, j'ai donc choisi de faire des noms de table ressemblant à `message_`. Et comme ce pseudo pouvait contenir des caractères qui auraient fait échouer les requêtes en temps normal, j'ai utilisé les apostrophes inversées qui permettent de délimiter le nom de la table pour que SQL puisse les comprendre correctement.