我无法弄清楚MySQL上的什么错误不断出现错误1064

时间:2019-02-22 19:50:52

标签: mysql sql mysql-error-1064

在服务器中执行SQL脚本

  

错误:错误1064:您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以在'VISIBLE'附近使用正确的语法,    约束fk_WEEK_WORKOUT      外键(WORKOUT_IdWorkout)   '在第12行

SQL代码:

    -- -----------------------------------------------------
    -- Table `mydb`.`WEEK`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `mydb`.`WEEK` (
      `WeekOne` VARCHAR(27) NOT NULL,
      `WeekTwo` VARCHAR(27) NOT NULL,
      `WeekThree` VARCHAR(27) NOT NULL,
      `WeekFour` VARCHAR(27) NOT NULL,
      `IdWeek` INT NOT NULL,
      `WORKOUT_IdWorkout` INT NOT NULL,
      PRIMARY KEY (`IdWeek`),
      INDEX `fk_WEEK_WORKOUT_idx` (`WORKOUT_IdWorkout` ASC) VISIBLE,
      CONSTRAINT `fk_WEEK_WORKOUT`
        FOREIGN KEY (`WORKOUT_IdWorkout`)
        REFERENCES `mydb`.`WORKOUT` (`IdWorkout`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB

无论我做了什么更改,我每次都会得到它

1 个答案:

答案 0 :(得分:0)

引入了list关键字的

MySQL Invisible Indexes从8.0版开始可用。您可能正在运行早期版本。

该功能称为 invisible 索引:这指出在MySQL的早期版本中,索引始终可见。即使在MySQL 8.0中,除非默认将索引明确定义为VISIBLE,否则索引都是默认可见的。

您可以从脚本中安全地删除INVISIBLE关键字,并且在所有版本的MySQL上它都可以正常运行(假设表VISIBLE存在并且具有唯一列)称为数据类型WORKOUT的{​​{1}}。

Demo on DB Fiddle