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 嗎?