2013-05-16 18 views
1

我在下面的MySQL表定義中看到一個好奇的名稱依賴項。當我如圖所示編碼表格時,它似乎打破了MySQL。當我從MySQLQueryBrowser執行「select * from dictionary_pair_join」時,狀態欄顯示「沒有結果集返回」 - 沒有列名和沒有錯誤。當我向表中插入一行時,狀態欄會顯示「1行受最後一條命令影響,不返回結果集」,隨後的選擇會給出相同的「無結果集返回」響應。爲什麼這個表名需要反標記?

當我在「select」語句中用反引號括起表名時,一切正常。當然,沒有名爲「dictionary_pair_join」的mysql實體!

下面是表的定義:

DROP TABLE IF EXISTS dictionary_pair_join; 
CREATE TABLE dictionary_pair_join (
    version_id int(11) UNSIGNED NOT NULL default '0', 
    pair_id int(11) UNSIGNED default NULL, 
    KEY (version_id), 
    KEY (pair_id) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

這裏是破select語句:

select * from dictionary_pair_join; 

下面是它的工作對口:

select * from `dictionary_pair_join`; 

爲什麼在需要反引號選擇語句?

更新:這也在Python mysqldb接口中失敗,這就是我開始看它的原因。我可以將反引號放入我的Python「select」生成器中,但我希望這是一些愚蠢且容易改變的內核。我想我也可以找到一個不同的名字。

+1

它在命令行'mysql'中工作嗎? – Quassnoi

+2

看起來像一個錯誤,因爲對我來說,它工作正常,即使沒有反引號..我正在使用MySQL 5.5 –

+0

暫停,我會檢查... –

回答

0

我已經誇大了Quassnoi和Software Guy的意見,他們一起說服了我,它只是mysql/mysqldb/mysqlquerybrowser中的一個錯誤。

我在查詢瀏覽器和mysqldb中都改變了表名(到「dictionary_pair_cons」)並且問題消失了。

+0

你可能會接受你的答案,然後:-) – PeerBr

相關問題