我无法弄清楚MySQL上有什么错误继续得到错误1064 [重复]

问题描述 投票:1回答:1

在服务器中执行SQL脚本

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

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

无论我改变什么,我每次都会得到这个

mysql sql mysql-error-1064
1个回答
0
投票

MySQL Invisible Indexes引入了VISIBLE关键字,自8.0版开始提供。您可能正在运行早期版本。

该功能称为隐形索引:这表明,在早期版本的MySQL中,索引始终可见。即使在MySQL 8.0中,默认情况下索引也是可见的,除非明确定义为INVISIBLE

您可以安全地从脚本中删除VISIBLE关键字,并且它应该在所有版本的MySQL上运行得很好(并且一致)(假设表WORKOUT存在并且它有一个名为IdWorkout的数据类型INT的唯一列)。

Demo on DB Fiddle

© www.soinside.com 2019 - 2024. All rights reserved.