为什么添加外键时出现 MYSQL 错误?

Why does MYSQL error when I try to add a foreign key?

我正在尝试在 MYSQL 中创建一个关系数据库。 目前,我正在制作外键并将它们连接到父 table。 问题是当我尝试这样做时(在 MYSQL workbench 中)MYSQL 添加了这行代码:

ADD INDEX `FK_party_coalitionparty_idx` (`partyId` ASC) VISIBLE;

经过一些研究,我发现它这样做是因为当我删除或更新父 table 时,当子 table 也删除或更新连接值时它真的很方便(或列)。

问题是当我 运行 没有添加索引行的外键代码时 运行 没有问题,但是添加了它(我想我明白为什么有它添加了)它出错并且不想执行代码来更新我的数据库。

当我尝试执行 SQL 文件中的代码时,出现以下错误,其中包含单词 VISIBLE:

VISIBLE is not valid at this position.

当我只尝试删除可见词时,它不能添加我的约束(我想是因为你不能把2次添加放在彼此下面)。我将包括一些屏幕截图和消息日志,以使我的问题更加清楚。

消息日志:

Operation failed: There was an error while applying the SQL script to the database.
Executing:
ALTER TABLE `testdatabase`.`coalitionparty` 
ADD INDEX `FK_party_coalitionparty_idx` (`partyId` ASC) VISIBLE;
;
ALTER TABLE `testdatabase`.`coalitionparty` 
ADD CONSTRAINT `FK_party_coalitionparty`
  FOREIGN KEY (`partyId`)
  REFERENCES `testdatabase`.`party` (`id`)
  ON DELETE CASCADE
  ON UPDATE CASCADE;

ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 2
SQL Statement:
ALTER TABLE `testdatabase`.`coalitionparty` 
ADD INDEX `FK_party_coalitionparty_idx` (`partyId` ASC) VISIBLE

我的 SQL 文件(当我尝试 运行 SQL 代码但不使用 workbench 菜单时: SQL file with the error included at the bottom

问题: 我需要如何解决这个问题,以便我能够使用级联并且不会收到错误消息?

提前致谢!

Mariadb 没有VISIBLE

查看手册了解更多信息information

所以你只能做

ALTER TABLE `coalitionparty` 
ADD INDEX `FK_party_coalitionparty_idx` (`partyId` ASC) ;

或切换到 MySsQL