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

Posted

技术标签:

【中文标题】如何在 mysql 数据库中创建 TINYINT(1) 数据类型? [关闭]【英文标题】:How to create TINYINT(1) datatype in mysql database? [closed] 【发布时间】:2013-03-10 15:03:53 【问题描述】:

我正在 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 附近 INT NULL' 在第 6 行

如何解决这个问题..

【问题讨论】:

谢谢大家的快速回复.. 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

`REPEAT` TINYINT(1) NULL,
MySQL Reserved Keywords List

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

【讨论】:

【参考方案3】:

首先你不应该使用 REPEAT,因为它是由 mysql 保留的,其次看一下MySql Error 150 - Foreign keys,因为你有另一个关于外键的错误。

【讨论】:

外键有什么问题? 啊抱歉,笨蛋,它应该可以正常工作。抱歉,回复太快了。

以上是关于如何在 mysql 数据库中创建 TINYINT(1) 数据类型? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 在 MySQL 中创建表?

如何从 python 在 mysql 中创建存储过程?

如何在 MySQL 中创建表别名

在VC中创建Mysql数据库

sql 如何在Mysql中创建数据库。

如何在MySQL中创建数据库及添加用户并授权用户