【发布时间】: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