Py学习  »  DATABASE

我不知道MySQL上有什么问题,一直得到错误1064

Bee • 5 年前 • 1611 次点击  

在服务器中执行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

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51932
 
1611 次点击  
文章 [ 1 ]  |  最新文章 5 年前
GMB
Reply   •   1 楼
GMB    6 年前

MySQL Invisible Indexes ,它介绍了 VISIBLE 关键字,自8.0版以后可用。您可能运行的是早期版本。

该功能称为 看不见的 索引:这表明,在早期版本的MySQL中,索引总是可见的。即使在MySQL 8.0中,默认情况下索引也是可见的,除非显式定义为 INVISIBLE .

您可以安全地移除 可见的 脚本中的关键字,它在所有版本的MySQL上都应该工作得很好(并且一致)(假设该表 WORKOUT 它有一个唯一的列 IdWorkout 数据类型的 INT ).

Demo on DB Fiddle