0

我正在mysql数据库中创建表,但它给出了错误......

    CREATE  TABLE IF NOT EXISTS `EC_TIMETABLE` (
  `S_ID` VARCHAR(30) NOT NULL PRIMARY KEY,
  `SKILLSET_ID` VARCHAR(30) NULL ,
    START_DT DATETIME NULL,
    END_DT DATETIME NULL,
    REPEAT TINYINT(1) NULL,
    ALL_DAY TINYINT(1) NULL,
    CLASS_DURATION INT NULL,
    COURSE_DURATION INT NULL,
    REPEAT_TYPE VARCHAR(30) NULL,
    REPEAT_EVERY INT NULL,
    REPEAT_DAYS VARCHAR(100) NULL,
    REPEAT_FROM DATE NULL,
    REPEAT_TO DATE NULL,
    COURSE_FEE INT NULL,
    ATTENDEE_MIN INT NULL,
    ATTENDEE_MAX INT NULL,
    SEARCH_KEY TINYTEXT NULL,
    FOREIGN KEY (`SKILLSET_ID` )
    REFERENCES `EC_SKILLSET` (`S_ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

但它给出了错误:

#1064- 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 6 行的“REPEAT TINYINT(1) NULL, ALL_DAY TINYINT(1) NULL, CLASS_DURATION INT NULL”附近使用正确的语法

这个怎么解决。。

4

3 回答 3

3

REPEAT是保留关键字。你仍然可以使用它,但你需要用反引号包裹它。

`REPEAT` TINYINT(1) NULL,

建议大家不要在后备名单上使用这样的关键词,以免以后脖子疼。

于 2013-03-21T07:40:48.477 回答
1

我相信 REPEAT 是 MySQL 中的一个关键字。尝试重命名您的列。

于 2013-03-21T07:40:34.017 回答
1

First you shouldn't use REPEAT because this is reserved by mysql and secondly take a look at MySql Error 150 - Foreign keys because you have another error concerning foreign keys.

于 2013-03-21T07:42:10.620 回答