mysql - 更换mysql数据库上的约束,总是失败

标签 mysql constraints

MySQL:5.5.27

phpMyAdmin:最新版本之一

我有一个数据库,其中包含以下表:

  • 成员(member)
  • 语言
  • 成员(member)语言

由于我匆忙创建了它并且必须填充它以进行测试,我后来发现并非所有约束都是应有的。例如,member_language 表中的 member_id 显然必须映射到 member 表中的 mem_id,并且 member_language 表中的 language_id 必须映射到 language 表中的 lang_id。因此,我重新创建了所有 3 个表,然后将所有数据重新导入到复制的表中:第一个是 member,然后是 language,最后是 member_language。

然后我尝试对member_language强制实现约束,但无法为member.mem_id创建fk约束,该约束将其链接到member_language.member_id。每次它抛出

#1452 error - Cannot add or update a child row: a foreign key constraint fails (`dbname`.`#sql-122f_bec4cef`, CONSTRAINT `#sql-122f_bec4cef_ibfk_2` FOREIGN KEY (`member_id`) REFERENCES `member` (`mem_id`))

有人能给我指出正确的方向吗? 塔克斯 SP

最佳答案

好的,这就是问题所在。

member_language 表中确实缺少一些member_id 值。这可能不是唯一的问题,但肯定有一个问题是我从 phpMyAdmin 创建的 SQL 导出文件跳过了一些值!

这确实很奇怪,因为我在查看表格时可以看到浏览 View 中的值,但在导出时,它在各处丢失了该表格中的行。所以确实存在不匹配,我认为这是导致问题的原因。

如果我发现其他可能的原因,我会再次发布......

关于mysql - 更换mysql数据库上的约束,总是失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188805/

相关文章:

mysql - 建模 BD MYSQL Cygnus FIWARE

ios - 如何使 UITableViewCell 居中,约束无法对齐

postgresql - Postgres : Unique constrain on Column-A, Column-B [value1]

ios - 无法在 View Controller 上为 Table View 和 Segmented Control 添加约束

mysql - [SQL异常 : Access denied for user '' @'179.43.156.163' (using password: YES)]

phpmyadmin 页面显示源代码,Ubuntu 16.04 安装了 Vagrant 和 Puphpet

MySQL 连接、分组、排序

php - Symfony sql 获取查询的子和

sql - 正则表达式约束拒绝 Postgresql 中明显有效的数据

sql - 在 postgresql 中添加二选一非空约束