我的 SQL 错误:错误 1064:您的 SQL 语法有错误;

Posted

技术标签:

【中文标题】我的 SQL 错误:错误 1064:您的 SQL 语法有错误;【英文标题】:MY SQL ERROR: Error 1064: You have an error in your SQL syntax; 【发布时间】:2020-07-09 09:14:13 【问题描述】:

在服务器中执行 SQL 脚本 错误:错误 1064:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在 ' 附近使用的正确语法 索引fk_film_actor_actor_id_idx (actor_id ASC) 可见, 第 10 行的约束 `fk'

SQL 代码:

    -- -----------------------------------------------------
    -- Table `baza_filmova`.`film_actor`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `baza_filmova`.`film_actor` (
      `film_actor_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `film_id` INT(10) UNSIGNED NOT NULL,
      `actor_id` INT(10) UNSIGNED NOT NULL,
      `role` VARCHAR(45) NOT NULL,
      PRIMARY KEY (`film_actor_id`),
      INDEX `fk_film_actor_film_id_idx` (`film_id` ASC) VISIBLE,
      INDEX `fk_film_actor_actor_id_idx` (`actor_id` ASC) VISIBLE,
      CONSTRAINT `fk_film_actor_film_id`
        FOREIGN KEY (`film_id`)
        REFERENCES `baza_filmova`.`film` (`film_id`)
        ON DELETE RESTRICT
        ON UPDATE CASCADE,
      CONSTRAINT `fk_film_actor_actor_id`
        FOREIGN KEY (`actor_id`)
        REFERENCES `baza_filmova`.`actor` (`actor_id`)
        ON DELETE RESTRICT
        ON UPDATE CASCADE)
    ENGINE = InnoDB

SQL 脚本执行完成:语句:7 个成功,1 个失败

以最终形式获取回视图定义。 没什么可取的

我正在使用 mysql Workbench 8.0.18。我开始制作模型,当我点击正向工程时,它只制作表格,bud 并没有制作这个 film_actor。它位于电影桌和演员桌之间的中间桌。

以前有人遇到过同样的错误吗?我该如何解决。

PS:我没有犯语法错误,我多次检查我的表和外键。

【问题讨论】:

你运行的是什么版本的 MySQL? select version()可以告诉你。 看看你的版本是否允许VISIBLE... 您使用 MariaDB。当应用于CREATE TABLE时,它甚至都不知道“VISIBLE”这个词的存在。 点击bugs.mysql.com/bug.php?id=92269上的“影响我” 【参考方案1】:

错误消息确实使您的 MySQL/Maria DB 版本不支持 VISIBLE 关键字。

此功能是在 MySQL 8.0 中引入的。在 MariaDB 中,它目前不可用。

请注意,VISIBLE 是未指定时的默认设置,因此您在查询中实际上不需要它:以下是等效的(并且应该可以工作):

  INDEX `fk_film_actor_film_id_idx` (`film_id`),
  INDEX `fk_film_actor_actor_id_idx` (`actor_id`),

【讨论】:

你有参考 10.3.3 吗?这意味着它尚未实现:jira.mariadb.org/browse/MDEV-7317 @RickJames:你是对的,我把它和不可见的 columns 混淆了......答案已更新。

以上是关于我的 SQL 错误:错误 1064:您的 SQL 语法有错误;的主要内容,如果未能解决你的问题,请参考以下文章

SQL 错误 1064:您的 SQL 语法有错误

SQLSTATE [42000]:语法错误或访问冲突:1064 在进行迁移时,您的 SQL 语法有错误

即使创建表的语法正确,我的 sql 中也会出现错误 1064

SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 — PHP — PDO [重复]

phpMyAdmin 导入错误 #1064 “您的 Sql 语法有错误”

MySQL #1064 - 您的 SQL 语法 2020 有错误 [重复]