通过SSH的MySQL“;无法添加或更新子行:外键约束失败;
完整的错误消息是: 无法添加或更新子行:外键约束失败 (通过SSH的MySQL“;无法添加或更新子行:外键约束失败;,mysql,sql-server,ssh,foreign-keys,constraints,Mysql,Sql Server,Ssh,Foreign Keys,Constraints,完整的错误消息是: 无法添加或更新子行:外键约束失败 (jpangil2/ACCOUNT,CONSTRAINTACCOUNT\u ibfk\u 1外键(STU GNUMBER)参考STUDENT(STU GNUMBER) 有问题的两个表格是学生: mysql>创建表学生 ->(STU_GNUMBER INT(8)主键, ->STU_LNAME CHAR(50岁), ->STU_FNAME CHAR(50岁), ->STU_电子邮件字符(50), ->斯图杜布日期, ->STU_PHONE CHA
jpangil2/ACCOUNT
,CONSTRAINTACCOUNT\u ibfk\u 1
外键(STU GNUMBER
)参考STUDENT
(STU GNUMBER
)
有问题的两个表格是学生:
mysql>创建表学生
->(STU_GNUMBER INT(8)主键,
->STU_LNAME CHAR(50岁),
->STU_FNAME CHAR(50岁),
->STU_电子邮件字符(50),
->斯图杜布日期,
->STU_PHONE CHAR(10),
->副秘书长(8)
->外键(DEP_ID)
->依赖于引用(DEP_ID))
和账户:
mysql>创建表帐户
->(附件编号INT(8)主键,
->STU_GNUMBER INT(8),
->采购订单编号INT(8),
->SL_编号INT(8),
->图号INT(9),
->BSS_编号INT(8),
->MHA_编号INT(8),
->外键(STU_GNUMBER)引用学生(STU_GNUMBER))
当我尝试在ACCOUNT表和列“STU_GNUMBER”中添加记录时,例如(12345678),我会收到上面的错误消息。我在这个网站上到处都找过类似的问题,但我找到的答案都是关于PHP、show create table和其他命令,以及我的新手无法理解的其他高级SQL逻辑。我通过SecureShell和VPN使用我大学的MySQL,所以我看不出这些PHP答案对我有什么帮助/
我已经在网上收到了其他人的帮助,但运气不好,但是有人能帮助我吗?他不会在每篇帖子上都屈尊于我,也不会因为我不懂一些更高级的SQL命令和逻辑而打倒我?谢谢你,我衷心感谢你所做的一切。根据你提供的表格,一个
账户
引用了一个学生
-你不能拥有一个在stu gnumber
中没有值的账户。这是表格上声明的外键的含义
为了将新行插入帐户
,您必须拥有stu gnumber
的有效值-既可以是通过查询表检索到的现有值,也可以在将新记录插入帐户
(例如,如果您的应用程序正在创建一个新的学生
和帐户
)
请注意,此问题与您正在使用的ssh无关-它来自底层表结构和insert
s的顺序,而与传输层的具体情况无关