【问题标题】:Another MySQl Syntax error 1064 [closed]另一个 MySQl 语法错误 1064 [关闭]
【发布时间】:2011-12-16 07:21:56
【问题描述】:

这有什么问题?

CREATE  TABLE IF NOT EXISTS `Service Manager`.`Company` (
  `Company_ID` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `GUID` CHAR(32) UNSIGNED NOT NULL ,
  `Region_ID` INT(6) UNSIGNED NOT NULL ,
  `name` VARCHAR(45) NOT NULL ,
  `inactive` TINYINT NOT NULL ,
  PRIMARY KEY (`Company_ID`) ,
  UNIQUE INDEX `name` (`name` ASC) ,
  UNIQUE INDEX `GUID` (`GUID` ASC) )
ENGINE = InnoDB;

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'UNSIGNED NOT NULL 附近使用的正确语法, Region_ID INT(6) UNSIGNED NOT NULL , name VARCHAR(45' at line 3

【问题讨论】:

    标签: mysql-error-1064


    【解决方案1】:

    我认为您可能不希望 CHAR 列上的 UNSIGNED 限定符。

    请参阅MySQL 5.0 Reference Manual :: 11 Data Types :: 11.1 Data Type Overview :: 11.1.6 String Types :: 11.1.6.1 The CHAR and VARCHAR Types 了解更多信息。

    【讨论】:

    • 这是正确的,UNSIGNED 只能在整数字段上设置,另见dev.mysql.com/doc/refman/5.6/en/numeric-types.html,其中提到:“所有整数类型都可以有一个可选的(非标准)属性 UNSIGNED。无符号类型可以是用于仅允许列中的非负数或当您需要该列的较大数字上限时。"
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 2014-12-02
    • 1970-01-01
    • 2016-03-10
    • 2015-04-25
    • 1970-01-01
    • 2012-10-22
    • 2017-05-06
    相关资源
    最近更新 更多