2011-05-21 70 views
1

我去了我的心在這裏......我是一個SQL初學者..但我不能爲我的生活中看到什麼是錯我的發言:上查詢MySQL的語法錯誤,什麼是錯的

CREATE TABLE usage 
    (id BIGINT AUTO_INCREMENT 
    , use_date datetime 
    , ctn VARCHAR(255) 
    , destination VARCHAR(255) 
    , cost_type BIGINT 
    , cost BIGINT 
    , up_data bigint 
    , down_data bigint 
    , INDEX cost_type_idx (cost_type) 
    , PRIMARY KEY(id)) ENGINE = INNODB; 

這裏是(版本5.5.8)由MySQL拋出的錯誤

SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤;檢查與您的MySQL服務器版本對應的手冊,以找到正確的語法,以便在第1行使用(id BIGINT AUTO_INCREMENT,use_date datetime,ctn VARCHAR(255),destinatio''附近使用。失敗查詢:「CREATE TABLE usage(id BIGINT AUTO_INCREMENT ,use_date datetime,ctn VARCHAR(255),destination VARCHAR(255),cost_type BIGINT,cost BIGINT,up_data bigint,down_data bigint,INDEX cost_type_idx(cost_type),PRIMARY KEY(id))ENGINE = INNODB「。Failing Query:CREATE TABLE (id BIGINT AUTO_INCREMENT,use_date datetime,ctn VARCHAR(255),destination VARCHAR(255),cost_type BIGINT,cost BIGINT,up_data bigint,down_data bigint,INDEX cost_type_idx(cost_type),PRIMARY KEY(id))ENGINE = INNODB

它說near,然後給我約30個字符!

我已經嘗試過不同的列名稱,以防我使用關鍵字。我嘗試過不同的數據類型 - 仍然沒有運氣!

我敢肯定,這很明顯,爲什麼它不適合那些沒有把頭髮拉出10分鐘的人 - 有人請讓我擺脫我的痛苦!

+0

你有沒有嘗試過一次? – Fosco 2011-05-21 19:39:01

+0

第一個運行良好 - 第二個失敗 - 如果我單獨運行他們 – ManseUK 2011-05-21 19:39:46

+0

我提到,因爲你真的只需要提供第二條線。我會爲你編輯它。 :) – Fosco 2011-05-21 19:44:38

回答

3

出現此錯誤是因爲USAGE是mysql中的保留字。

參見:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html獲取保留字列表。

此外,雖然它確實給了你很大一部分的查詢,但它是第一部分是最重要的......它說near 'usage,所以這通常是它的問題。

+0

大壩大壩...現在我感到很蠢....感謝指出 - 我應該檢查清單!感謝您的鏈接.....當它建議「接近」通常是第一個字建議? – ManseUK 2011-05-21 19:43:33

+0

@ManseUK是的,通常... – Fosco 2011-05-21 19:44:13

+0

感謝您的幫助 - 鏈接已添加書籤! – ManseUK 2011-05-21 20:04:31