我在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服务器版本,以便使用正确的语法 'REPEAT TINYINT(1)NULL附近,ALL_DAY TINYINT(1)NULL,CLASS_DURATION 第6行的INT NULL'
如何解决这个问题..
答案 0 :(得分:3)
REPEAT
是保留关键字。你仍然可以使用它,但你需要用反引号包装它。
`REPEAT` TINYINT(1) NULL,
我建议您不要在保留名单上使用此类关键字以避免将来出现颈部疼痛。
答案 1 :(得分:1)
我相信REPEAT是MySQL中的关键字。尝试重命名您的专栏。
答案 2 :(得分:1)
首先你不应该使用REPEAT,因为这是由mysql保留的,其次是看看MySql Error 150 - Foreign keys因为你有另外一个关于外键的错误。