如何在mysql数据库中创建TINYINT(1)数据类型?

如何在mysql数据库中创建TINYINT(1)数据类型?

问题描述:

我在MySQL数据库中创建表,但它给错误...如何在mysql数据库中创建TINYINT(1)数据类型?

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 - 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 'REPEAT TINYINT(1) NULL, ALL_DAY TINYINT(1) NULL, CLASS_DURATION INT NULL' at line 6

如何解决这一..

+0

谢谢所有快速响应.. – 2013-03-21 07:43:59

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

`REPEAT` TINYINT(1) NULL, 

我建议你不要使用候补名单上的这样的关键字,以避免将来出现颈部疼痛。

我相信REPEAT是MySQL中的关键字。尝试重命名您的专栏。

首先,您不应该使用REPEAT,因为这是由mysql保留的,其次请看MySql Error 150 - Foreign keys,因为您有关于外键的其他错误。

+0

外键有什么问题? – 2013-03-21 07:43:04

+0

啊对不起我愚蠢,它应该工作得很好。对不起,回复太快了。 – pauel 2013-03-21 07:44:39