MySQL/Language/Specifying names

维基教科书,自由的教学读本
跳到导航 跳到搜索

使用反引号(`)包上 MySQL的标识符,如表名、列名、数据库名等。这可以更好理解报错信息。对比以下两例:

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

更好的效果:

mysql> SELECT user_id, group_id FROM `user`,`group` LIMIT 1;
ERROR 1146 (42S02): Table 'savannah.group' doesn't exist

它丢了一个字符s:

mysql>  SELECT user_id, group_id FROM `user`,`groups` LIMIT 1;
+---------+----------+
| user_id | group_id |
+---------+----------+
|     100 |        2 |
+---------+----------+
1 row in set (0.02 sec)

反引号允许使用保留字、非法字符作为对象的名字。甚至可以使用反引号自身(输入两遍):

RENAME TABLE `user` TO ````

SQL国际标准建议使用双引号("),但MySql还不支持。