我的 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 语法有错误;的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE [42000]:语法错误或访问冲突:1064 在进行迁移时,您的 SQL 语法有错误
即使创建表的语法正确,我的 sql 中也会出现错误 1064
SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 — PHP — PDO [重复]