2011-03-22 146 views
0

我正在使用mysql管理GUI工具來創建表。下面是導致錯誤的查詢語言:mySQL表創建失敗 - 錯誤1064

CREATE TABLE `environment`.`moisture` (
    `city_id` INT, 
    `date_holding` VARCHAR, 
    `time_holding` VARCHAR, 
    `open` REAL, 
    `high` REAL, 
    `low` REAL, 
    `close` REAL, 
) 
CHARACTER SET utf8; 

我的日期和時間格式的MySQL不喜歡,所以我選擇VARCHAR作爲這些列的類型,將她們稱作保持柱,直到我可以運行查詢以進行必要的轉換。

當我嘗試通過GUI我得到下面執行此:

Error executing SQL commands to create table.
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 'NOT NULL,
`time_holding` VARCHAR NOT NULL,
`open` REAL NOT NULL,
`high` RE' at line 3 (error 1064)

任何想法,爲什麼我得到這個?我檢查過我是否在使用任何保留字,但似乎並非如此。

您的幫助將不勝感激。

回答

2

您遇到的第一個錯誤是由於VARCHAR字段需要如下長度:VARCHAR(30)

第二個錯誤(如果您修復了2個varchars,您會得到)是最後一個括號之前的逗號。

CREATE TABLE `environment`.`moisture` (
    `city_id` INT, 
    `date_holding` VARCHAR(30), --or whatever length you want 
    `time_holding` VARCHAR(20), --same 
    `open` REAL, 
    `high` REAL, 
    `low` REAL, 
    `close` REAL --- no comma here 
) 
CHARACTER SET utf8; 

旁註:你知道,MySQL有特定的類型來處理日期和時間,不是嗎?所以你可以有:

CREATE TABLE `environment`.`moisture` (
    `city_id` INT, 
    `date_holding` date, 
    `time_holding` time, 
    ... 
+0

這樣做的伎倆。謝謝。我正在使用管理員用戶界面,我不知道我可以通過手動將VARCHAR更改爲VARCHAR(50)來編輯數據類型...瞭解了一些新內容。再次感謝。 – codingknob 2011-03-22 16:47:10