MySQL Workbench

时间:2018-12-16 12:48:23

标签: mysql mysql-workbench

在MySQL Workbench中创建我的第一个表存在一个小问题。当我创建两个表并进行正向工程进度时,我得到以下消息:

  

在服务器中执行SQL脚本       错误:错误1064:您的SQL语法有错误;       检查与您的MariaDB服务器版本相对应的手册       在附近使用正确的语法         'INDEX fk_person_has_user_person_idxperson_ID ASC)可见,         CONSTRAINT',位于第8行

SQL代码:

        -- -----------------------------------------------------
        -- Table `customers`.`person_has_user`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `customers`.`person_has_user` (
          `person_ID` INT NOT NULL,
          `user_person_ID` INT NOT NULL,
          PRIMARY KEY (`person_ID`, `user_person_ID`),
          INDEX `fk_person_has_user_user1_idx` (`user_person_ID` ASC) VISIBLE,
          INDEX `fk_person_has_user_person_idx` (`person_ID` ASC) VISIBLE,
          CONSTRAINT `fk_person_has_user_person`
            FOREIGN KEY (`person_ID`)
            REFERENCES `customers`.`person` (`ID`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT `fk_person_has_user_user1`
            FOREIGN KEY (`user_person_ID`)
            REFERENCES `customers`.`user` (`person_ID`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB

SQL script execution finished: statements: 7 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

有人可以解释吗?

1 个答案:

答案 0 :(得分:0)

Ed Cottrell是正确的。这是您的MySQL服务器版本和MySQL Workbench设置之间的版本不匹配。

  1. 执行SELECT VERSION();以使您的服务器告诉您其版本。
  2. 在Workbench中,执行“编辑/首选项/建模”>“ MySQL”,然后将“默认目标MySQL版本” 设置为您的服务器版本。

然后,Workbench将生成适合您实际使用的服务器的代码。

新用户很可能会发生此错误;新下载的Workbench软件的默认设置为MySQL 8,但世界上许多服务器尚未使用版本8。