0

このテーブルの作成で構文エラーが発生する理由がわかりません。

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

datetime で問題が発生しているように見えますが、なぜですか? これを別のテーブルで使用しましたが、機能しています。

ありがとう。

4

2 に答える 2

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;
于 2013-01-03T15:10:06.697 に答える
1

開始は予約済みのキーワードです。おそらく、別のものを使用できます。

于 2013-01-03T15:11:04.533 に答える