使用 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/56229764/

相关文章:

php - php/mysql 日期减去 1 年

python - Azure Databricks 错误 : AzureException: hadoop_azure_shaded. com.microsoft.azure.storage.StorageException:服务器无法对请求进行身份验证

mysql - SQL:GROUP BY 子句中的所有属性都需要在 SELECT 子句中列出吗?

MySQL:使用通配符和分组时的列排序有奇怪的行为

mysql - 无法在 WAMP 中启动 MySQL 服务器

MySQL 连接表以进行多个条件的计数

php - SQL 插入日期总是出现 NULL

mysql - 如何在 Workbench 中为 MySQL 表指定 DateTime()

mysql - 加载数据文件并在重复 key 更新时

mysql - 过滤 SQL 结果?