跳轉至內容

MySQL/語言/指定名稱

來自維基文庫,一個開放世界的開放書籍

在這本書中,我們將引用 MySQL 識別符號(表名、欄位、資料庫等),使用反引號 (`) 。

反引號是 ASCII 96。它可以透過在 Linux 系統中按 ALT+'. 來輸入。

大多數情況下,這是可選的。不過,這樣做可以從 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 標準推薦使用雙引號 (")。如果你想編寫可移植的 SQL 引號,不要引用識別符號。但即使是遠端的,也沒有所謂的可移植 SQL 嗎?

華夏公益教科書