使用MySQL Workbench添加外键时出现MySQL错误1064 [英] MySQL Error 1064 when adding foreign key with MySQL Workbench

查看:786
本文介绍了使用MySQL Workbench添加外键时出现MySQL错误1064的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,当我想添加外键时出现错误.我在带有EER图模型的MySQL Workbench中添加了外键.工作台尝试添加的行是:

So I have an error, when I want to add a foreign key. I added the foreign key in MySQL Workbench with an EER Diagram Model. The lines workbench tries to add are:`

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

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

I searched for solutions and find that parenthesis are important or backticks, but since the code is created by the tool, it seems correct to me. What could cause the error?

推荐答案

对于任何对此感兴趣的人,都可以在EER图模型窗口中设置要用于生成SQL脚本的MySQL版本.转到编辑",首选项",然后进入"MySQL"建模"部分,并设置您的自定义MySQL版本.

For anyone looking this, in the EER Diagram Model window you can set wich MySQL version want use to generate SQL script. Go to Edit, Preferences, then Modeling section, MySQL and set your custom MySQL version.

这篇关于使用MySQL Workbench添加外键时出现MySQL错误1064的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆