尝试添加外键时如何修复错误1064

时间:2019-05-15 13:10:21

标签: mysql sql mariadb

我正在尝试为库设置数据库,并且在创建表并尝试创建外键之后出现此错误(1064),但我不知道该怎么办。我正在使用MySQL 8

我搜索了,但找不到相似的东西。我发现的只是保留字问题,在这种情况下我认为不是问题。

ALTER TABLE `project`.`book` 
ADD INDEX `pubName_fk_idx` (`pubName` ASC) VISIBLE;
;
ALTER TABLE `project`.`book` 
ADD CONSTRAINT `pubName_fk`
  FOREIGN KEY (`pubName`)
  REFERENCES `project`.`publisher` (`pubName`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

错误消息:

  

操作失败:将SQL脚本应用于   数据库。执行中:

ALTER TABLE `project`.`book` 
ADD INDEX `pubName_fk_idx` (`pubName` ASC) VISIBLE;
;
ALTER TABLE `project`.`book` 
ADD CONSTRAINT `pubName_fk`
  FOREIGN KEY (`pubName`)
  REFERENCES `project`.`publisher` (`pubName`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;
  

错误1064:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取在第2行的''附近使用的正确语法   SQL语句:

ALTER TABLE `project`.`book` 
ADD INDEX `pubName_fk_idx` (`pubName` ASC) VISIBLE

1 个答案:

答案 0 :(得分:1)

如果您使用的是低于8.0的MariaDB或MySQL,则它们尚未增加VISIBLE或INVISIBLE索引,因此您需要更改查询:

ALTER TABLE `project`.`book` 
ADD INDEX `pubName_fk_idx` (`pubName` ASC)