【问题标题】:MySQL Workbench schema synchronization causing error 1064MySQL Workbench 模式同步导致错误 1064
【发布时间】:2019-11-06 11:23:40
【问题描述】:

我正在使用 MySQL Workbench 尝试为我的数据库创建架构。当我尝试将其同步到服务器时,我收到错误 1064。这是完整的日志:

Executing SQL script in server
ERROR: Error 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 'VISIBLE,
  PRIMARY KEY (`id`),
  CONSTRAINT `buildings_rel`
    FOREIGN KEY (`bu' at line 10
SQL Code:
        CREATE TABLE IF NOT EXISTS `rentals`.`apartments` (
          `beds` INT(11) NOT NULL,
          `baths` INT(11) NOT NULL,
          `area` INT(11) NOT NULL,
          `price_min` INT(11) NOT NULL,
          `price_max` INT(11) NOT NULL,
          `available_now` BIT(1) NOT NULL,
          `building_id` INT(11) NULL DEFAULT NULL,
          `id` INT(11) NOT NULL AUTO_INCREMENT,
          INDEX `buildings_rel_idx` (`building_id` ASC) VISIBLE,
          PRIMARY KEY (`id`),
          CONSTRAINT `buildings_rel`
            FOREIGN KEY (`building_id`)
            REFERENCES `rentals`.`buildings` (`id`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB
        DEFAULT CHARACTER SET = utf8

我不太了解 SQL,所以我很难弄清楚这里到底出了什么问题。我希望工作台能够创建正确的代码,但我有点惊讶它似乎出现了这种故障。任何帮助表示赞赏,谢谢。

【问题讨论】:

  • 索引的 VISIBLE 选项是 MySQL 8.0 的新增功能。如果您使用的是旧版本的 MySQL,则不应使用该选项。
  • 听起来您正在使用新版本的 Workbench 和较旧的 MySQL。也许有一些方法可以告诉它你使用的是什么版本的 MySQL,所以它会产生兼容的代码。

标签: mysql syntax mysql-workbench


【解决方案1】:

知道了!正如一些评论者所说,我必须在 MySQL Workbench 设置中设置不同的目标版本。谢谢!

【讨论】:

    【解决方案2】:

    更改默认目标 MySQL 版本以匹配您的 mysql 版本。

    Home -> Edit -> Preferences -> Modeling -> MySQL -> Default Target MySQL Version
    

    【讨论】:

      猜你喜欢
      • 2018-04-14
      • 2017-05-06
      • 2011-04-17
      • 2015-10-28
      • 2011-09-08
      • 2019-05-05
      • 1970-01-01
      • 2014-05-16
      • 2015-04-07
      相关资源
      最近更新 更多