我建立一個簡單的應用程序,其中列出球隊和比賽包圍Mysql的拋出一個錯誤。團隊和賽事數據庫建成具有以下腳本(我使用phpMyAdmin):當一個表名是不是用單引號
CREATE TABLE IF NOT EXISTS `Team` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(120) NOT NULL,
`screen_name` varchar(100) NOT NULL,
`sport_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
CREATE TABLE IF NOT EXISTS `Match` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sport_id` int(11) NOT NULL,
`team_one_id` int(11) NOT NULL,
`team_two_id` int(11) NOT NULL,
`venue` varchar(80) NOT NULL,
`kick_off` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
如果我這樣做:
SELECT * FROM Team
運行該腳本,我得到一個空的結果。但是,不可思議的是,如果我做
SELECT * FROM Match
我得到以下錯誤:
1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本在線路附近使用「匹配」 1
取而代之的是正確的語法手冊,我必須做的:
SELECT * FROM `Match`
和它的作品。我在數據庫中有其他表,但這是唯一的行爲。任何想法爲什麼?
MATCH是Mysql關鍵字。如果您必須將其用作表格名稱,則必須引用它。我建議你把它改成不會衝突的東西。 – 2013-08-01 20:40:49
當事物命名,[保留此頁書籤](http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html)的使用而保留的關鍵字名稱證明煩人。 – tadman