为什么添加外键时出现 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
我正在尝试在 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