MySQL/Spécifier les noms
< MySQL
Afin de distinguer les variables des mots réservés, on place les identificateurs MySQL (noms des tables, champs, et bases) entre deux accents graves (`
). Il s'agit du caractère ASCII 96, disponible sous Linux en pressant les deux touches ALT
+ '
.
Généralement il est optionnel, mais il permet de meilleurs messages d'erreur, par exemple :
mysql> SELECT user_id, group_id FROM user,group LIMIT 1; ERROR 1064 (42000): 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 'group LIMIT 1' at line 1
vs :
mysql> SELECT user_id, group_id FROM `user`,`group` LIMIT 1; ERROR 1146 (42S02): Table 'savannah.group' doesn't exist
Montre qu'il manquait un s à group:
mysql> SELECT user_id, group_id FROM `user`,`groups` LIMIT 1; +---------+----------+ | user_id | group_id | +---------+----------+ | 100 | 2 | +---------+----------+ 1 row in set (0.02 sec)
Cette syntaxe autorise l'utilisateur à employer des mots réservés dans leurs noms d'objets. On peut même utiliser des accents graves en les tapant deux fois, à la manière des caractères d'échappement :
RENAME TABLE `user` TO ````
Par contre cette syntaxe n'est pas portable, car le standard SQL recommande le guillemet ("
).