2008-11-29 60 views
10

我對MYSQL非常非常陌生,我嘗試創建一個名爲「option」的表。 我的SQL查詢:我們可以在MySQL中將表名稱作爲「option」嗎?

創建表的選項(

ID INT NOT NULL主鍵AUTO_INCREMENT,

選擇VARCHAR(30)

當執行此查詢顯示以下錯誤

錯誤代碼:1064 您在SQL語法中有錯誤;檢查對應於你的MySQL服務器版本使用附近的「選項( ID INT NOT NULL主鍵AUTO_INCREMENT, 選擇VARCHAR(30) )」在1號線 正確的語法(取0毫秒)

手冊

如果我嘗試將表名稱作爲「選擇」,它正在工作。

我們可以在mysql中使用表名作爲「選項」嗎?

感謝

+0

根據我的回答,雖然你可以,但你想讓你的應用程序/ DB在一個好的開始。單詞「選項」是否真的是這個表的最好名字?它必須是特定選項的一個選項,因此如果您尚未解決數據模型問題並且該問題應該自行解決,請花點時間繪製數據模型。 – 2008-11-29 17:59:40

回答

10

選擇一個不同的名稱(一個是不是保留字在你的RDBMS),並保存自己,不管是誰可能會在它的許多頭痛的工作。

+0

儘管看似無害於引用,但我一直堅持使用名爲'All'和'Table'以及其他保留字的表的系統,並且開始輕視back-tick/bracket。 – 2008-11-30 03:53:35

15

如果你想有一個表的名稱選項,你應該能夠,只記得,每當你在查詢中使用的表,你將不得不包住它在`符號。喜歡這個。

`option` 

鍵盤左上角的按鍵和代字號。

+0

它在我的鍵盤左下角! – 2008-11-29 17:48:46

2

如果您使用反引號將它們轉義,則可以在SQL中使用SQL關鍵字作爲表名。

CREATE TABLE `option` (
    ... 
) 

雖然這樣做通常不是一個好主意。

0

選項是MySQL中的reserved word。爲自己的表名拯救自己的世界,並使用選擇

4

選項是Mysql中的保留字。我們可以使用單引號內的單詞來保留單詞。

3

更好的是你選擇了另一個表名。否則維護我們的代碼將會很困難。

0

是的,你絕對可以創建一個表名爲選項,但在每一個查詢,你將不得不使用

`option` 

而不是純option。稍微改進一下,創建一個名爲options的表來避免麻煩。限制使用mysql保留字作爲表名或列名或過程名稱。

相關問題