使用 MySQL Workbench 添加外键时出现 MySQL 错误 1064

标签 mysql sql mysql-workbench

所以我有一个错误,当我想添加一个外键时。我使用 EER 图模型在 MySQL Workbench 中添加了外键。工作台尝试添加的行是:`

CREATE SCHEMA IF NOT EXISTS `barberDB` DEFAULT CHARACTER SET latin1 ;
USE `barberDB` ;

-- -----------------------------------------------------
-- Table `barberDB`.`BARBER`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `barberDB`.`BARBER` (
  `ID` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NULL,
  PRIMARY KEY (`ID`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `barberDB`.`CUSTOMER`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `barberDB`.`CUSTOMER` (
  `ID` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NULL,
  `isHaircut` INT NULL,
  `isBeard` INT NULL,
  `isEyebrows` INT NULL,
  `BARBER_ID` INT NOT NULL,
  PRIMARY KEY (`ID`),
  INDEX `fk_CUSTOMER_BARBER_idx` (`BARBER_ID` ASC) VISIBLE,
  CONSTRAINT `fk_CUSTOMER_BARBER`
    FOREIGN KEY (`BARBER_ID`)
    REFERENCES `barberDB`.`BARBER` (`ID`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

我得到的错误是:

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,
  CONSTRAINT `fk_CUSTOMER_BARBER`
    FOREIGN KEY (`BARBER_ID`)
    REF' at line 12
SQL Code:
        -- -----------------------------------------------------
        -- Table `barberDB`.`CUSTOMER`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `barberDB`.`CUSTOMER` (
          `ID` INT NOT NULL AUTO_INCREMENT,
          `name` VARCHAR(45) NULL,
          `isHaircut` INT NULL,
          `isBeard` INT NULL,
          `isEyebrows` INT NULL,
          `BARBER_ID` INT NOT NULL,
          PRIMARY KEY (`ID`),
          INDEX `fk_CUSTOMER_BARBER_idx` (`BARBER_ID` ASC) VISIBLE,
          CONSTRAINT `fk_CUSTOMER_BARBER`
            FOREIGN KEY (`BARBER_ID`)
            REFERENCES `barberDB`.`BARBER` (`ID`)
            ON DELETE CASCADE
            ON UPDATE CASCADE)
        ENGINE = InnoDB

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

Fetching back view definitions in final form.
Nothing to fetch

我搜索了解决方案,发现括号很重要或反引号,但由于代码是由该工具创建的,所以对我来说似乎是正确的。 什么可能导致错误?

最佳答案

对于查看此内容的任何人,在 EER 图模型窗口中,您可以设置要用于生成 SQL 脚本的 MySQL 版本。转到“编辑”、“首选项”、“建模”部分、“MySQL”并设置您的自定义 MySQL 版本。

关于使用 MySQL Workbench 添加外键时出现 MySQL 错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51917812/

相关文章:

进行简单的 sql 查询时,Java vs PHP

php - 如何在 elementxof table1 = elementx of table2 的情况下获取与另一个表 JOINing 的列的选择总和?[特殊情况]

mysql - MySql Workbench 6.3E中如何制作一对一关系EER图

sql - 独立对列进行排序,使得所有空值都位于每列的最后

mysql - 从 MySQL Workbench 复制到 Excel

mysql - 执行流程-MySQL

mysql - 从mysql中选择特定格式的日期

php - 使用ajax基于mysql日期时间触发事件的正确方法

PHP:在第一个脚本运行后 5 分钟执行脚本

sql - 按连续日期对记录进行分组