MySQL Workbench不会生成数据库

时间:2018-10-29 07:50:48

标签: mysql mysql-error-1064

当我尝试使用前向工程师生成数据库时,出现这样的错误。

在服务器中执行SQL脚本

  

错误:错误1064:您的SQL语法有错误;检查   与您的MySQL服务器版本相对应的手册   在'VISIBLE,INDEX _ = (UIApplication.visibleNavigationController.visibleViewController as! EditImageControl).editImageContainer.addConstraintForAspectRatio(21/22) (UIApplication.visibleNavigationController.visibleViewController as! EditImageControl).editImageContainer.layoutSubviews() print("horizontal.. ") 附近使用的语法   (fk_Personal_Human1_idx ASC)可见,请对照第12行

SQL代码:

Human_idMan

SQL脚本执行完成:语句:成功7次​​,失败1次

以最终形式获取后视图定义。 什么都没拿

1 个答案:

答案 0 :(得分:0)

这里的问题是不同MySQL服务器版本之间的语法差异。 MySQL Workbench 8.0 正在为MySQL服务器 8.0版自动生成CREATE UNIQUE INDEX语句。

最有可能是您的MySQL服务器版本<8.0。。您可以从VISIBLE语句中删除CREATE TABLE关键字。它将如下所示:

CREATE TABLE IF NOT EXISTS `mydb`.`Personal` (
  `idPersonal` INT NOT NULL,
  `Experience` INT NULL,
  `Department_idDepartment` INT NOT NULL,
  `Date_of_accept` DATE NOT NULL,
  `Date_of_release` DATE NULL,
  `Human_idMan` INT NOT NULL,
  PRIMARY KEY (`idPersonal`),
  INDEX `fk_Personal_Department1_idx` (`Department_idDepartment` ASC),
  INDEX `fk_Personal_Human1_idx` (`Human_idMan` ASC),
  CONSTRAINT `fk_Personal_Department1`
    FOREIGN KEY (`Department_idDepartment`)
    REFERENCES `mydb`.`Department` (`idDepartment`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_Personal_Human1`
    FOREIGN KEY (`Human_idMan`)
    REFERENCES `mydb`.`Human` (`idMan`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB

MySQL Server 8.0 Docs中,CREATE INDEX的语法为:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option:
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}  -- Notice the option of VISIBLE / INVISIBLE

index_type:
  USING {BTREE | HASH}

但是, MySQL Server 5.7 中没有{VISIBLE | INVISIBLE}的此选项。来自Docs

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part:
    col_name [(length)] [ASC | DESC]

index_option:
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'

index_type:
    USING {BTREE | HASH}