Mysql 添加外键时出错
我有一个名为Mysql 添加外键时出错,mysql,sql,database,mysql-workbench,Mysql,Sql,Database,Mysql Workbench,我有一个名为movies的表,其中id字段作为主键,还有两个varchar:title和genre 我创建了一个名为genres的新表,其中int字段id作为主键,而desriptionvarchar。我更改了我的电影表中的类型字段,以便可以创建引用类型的外键 然而,Mysql Workbench说在创建外键时出现了一个错误 声明如下: ALTER TABLE `managemovies`.`movies` ADD CONSTRAINT `genre_reference` FOREIG
movies
的表,其中id
字段作为主键,还有两个varchar:title
和genre
我创建了一个名为genres
的新表,其中int字段id
作为主键,而desription
varchar。我更改了我的电影
表中的类型
字段,以便可以创建引用类型的外键
然而,Mysql Workbench说在创建外键时出现了一个错误
声明如下:
ALTER TABLE `managemovies`.`movies`
ADD CONSTRAINT `genre_reference`
FOREIGN KEY (`genre` )
REFERENCES `managemovies`.`genres` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
, ADD INDEX `genre_reference_idx` (`genero` ASC) ;
错误:
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`managemovies`.`#sql-3ba_2b`, CONSTRAINT `genre_reference` FOREIGN KEY (`genre`) REFERENCES `genres` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
SQL语句:[…与上述语句相同…]
错误:运行故障回复脚本时出错。详情如下
ERROR 1046: No database selected
SQL Statement:
CREATE TABLE `movies` [...]
[... the errors above repeated again ...]
清除表内容并尝试添加外键
如果您的表包含与外键字段值不匹配的数据,您将看到此错误…看起来您的表
movies
的流派列中包含的数据在genres.id列中不存在
删除无效数据后,您的语句应能正常工作
希望能有帮助
Vishad您的子表可能有数据。从子表中删除数据,然后添加外键。