在服务器中执行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 Invisible Indexes引入了VISIBLE
关键字,自8.0版开始提供。您可能正在运行早期版本。
该功能称为隐形索引:这表明,在早期版本的MySQL中,索引始终可见。即使在MySQL 8.0中,默认情况下索引也是可见的,除非明确定义为INVISIBLE
。
您可以安全地从脚本中删除VISIBLE
关键字,并且它应该在所有版本的MySQL上运行得很好(并且一致)(假设表WORKOUT
存在并且它有一个名为IdWorkout
的数据类型INT
的唯一列)。