MySQL/Spécifier les noms

Un livre de Wikilivres.
Aller à : navigation, rechercher


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 es 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 (").