2013-01-03 28 views
0

我只是不明白,爲什麼我有這個表創建一個語法錯誤:Mysql語法錯誤,但在哪裏以及爲什麼?

CREATE TABLE IF NOT EXISTS Tasks (
ID INT UNSIGNED NOT NULL auto_increment, 
Name VARCHAR(255) DEFAULT '' NOT NULL, 
Description TEXT, 
Date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
Status ENUM('New', 'Assigned', 'In Progress', 'On Hold', 'Done', 'Canceled'), 
Priority ENUM('Urgent', 'High', 'Normal', 'Low'), 
Creator SMALLINT UNSIGNED DEFAULT '0' NOT NULL, 
Assignee SMALLINT UNSIGNED, 
Starting DATETIME, 
Deadline DATETIME, 
Completion DATETIME, 
PRIMARY KEY(ID) 
) ENGINE = INNODB; 

給我:

ERROR 1064 (42000): 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 
'Starting DATETIME, 
Deadline DATETIME, 
Completion DATETIME, 
PRIMARY KEY(ID) 
) ENG' at line 10 

看起來像它給我的麻煩與日期時間,但爲什麼呢?我在另一個表中使用了它,它正在工作。

謝謝。

回答

4

STARTING是保留關鍵字,它應該是與反引號逃脫,

CREATE TABLE IF NOT EXISTS Tasks 
(
    ID INT UNSIGNED NOT NULL auto_increment, 
    Name VARCHAR(255) DEFAULT '' NOT NULL, 
    Description TEXT, 
    Date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
    Status ENUM('New', 'Assigned', 'In Progress', 'On Hold', 'Done', 'Canceled'), 
    Priority ENUM('Urgent', 'High', 'Normal', 'Low'), 
    Creator SMALLINT UNSIGNED DEFAULT '0' NOT NULL, 
    Assignee SMALLINT UNSIGNED, 
    `Starting` DATETIME, 
    Deadline DATETIME, 
    Completion DATETIME, 
    PRIMARY KEY(ID) 
) ENGINE = INNODB; 
+0

保留字的完整列表在這裏:http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-5.html – BenLanc

+0

謝謝你對! – SrgHartman

+0

不客氣! ':D' –

1

啓動是一個保留關鍵字。也許你可以使用一個不同的。