EER模型正向工程报错:MySQL/MariaDB SQL语法错误1064求助
解决MariaDB创建表时的SQL语法错误
问题原因
报错指向第10行的VISIBLE关键字——MariaDB(以及MySQL 8.0之前的版本)不支持VISIBLE/INVISIBLE索引修饰符,这是MySQL 8.0引入的语法,你的MariaDB版本不兼容该写法,导致解析失败。
修正后的SQL脚本
去掉索引定义后的VISIBLE关键字即可:
CREATE TABLE IF NOT EXISTS `a_work`.`artwork` ( `artwork_id` INT NOT NULL, `title` VARCHAR(45) NOT NULL, `year` YEAR(4) NOT NULL, `period` VARCHAR(25) NOT NULL, `type` VARCHAR(20) NOT NULL, `file` MEDIUMBLOB NOT NULL, `artist_id` INT NOT NULL, PRIMARY KEY (`artwork_id`), INDEX `fk_artwork_artist_idx` (`artist_id` ASC), CONSTRAINT `fk_artwork_artist` FOREIGN KEY (`artist_id`) REFERENCES `a_work`.`artist` (`artist_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB
额外说明
- 若需要控制索引可见性,需确认MariaDB版本是否支持(MariaDB 10.6及以上才引入
VISIBLE/INVISIBLE索引功能),版本过低则需升级或放弃该语法。 - 正向工程工具(如MySQL Workbench)可能默认生成MySQL 8.0+的语法,可在工具设置中调整目标数据库版本为对应MariaDB版本,避免生成不兼容代码。
内容的提问来源于stack exchange,提问作者Febirison
相关产品推荐
相关产品推荐

