mysql - 添加外键时出错

标签 mysql sql foreign-keys innodb foreign-key-relationship

我正在使用 Mysql Workbench。我已经做好了 table 。 现在我想在一个名为 Personal_Details 的表中添加外键,该键是 Login 表中的主键。

但是当我尝试这样做时,它向我显示以下错误:

ERROR 1005: Can't create table 'shaadiDB.#sql-404_25' (errno: 121)

SQL语句:

ALTER TABLE `shaadiDB`.`Personal_Details` 
  ADD CONSTRAINT `Login_Id`
  FOREIGN KEY (`Login_Id` )
  REFERENCES `shaadiDB`.`Login` (`Login_Id` )
  ON DELETE NO ACTION
  ON UPDATE NO ACTION
, ADD INDEX `Login_Id` (`Login_Id` ASC)

最佳答案

似乎 Personal_Details 表中的数据可能有一些带有 Login_Id 的行,而表 Login 中不存在这些行。

如果是这种情况,那么解决方案就是需要将数据移动到另一个表,然后添加约束。添加约束后,您需要将所有行逐一添加回表 1。

关于mysql - 添加外键时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21276210/

相关文章:

python - 哪个高效,使用 sql 连接查询,还是使用 pandas 合并查询?

mysql - 外键引用另一个表中的多行

PHP/SQL/Mysql/phpmyadmin - 外键

php - 注册前我应该如何保存访客的帖子?

sql - 将内容存储在平面文件中比数据库真的有助于更好的 google/yahoo/bing 搜索吗?

mysql - 如何为子查询添加值?

mysql - SQL IN 不是NOT IN 的反义词吗?

php - 为 IN 语句 PDO MYSQL 转义字符串数组

javascript - 在 MySql javascript 中更新数据

mysql - 删除子 SQL 记录和父 SQL 记录