Mysql 将一个表的主键上的外键构造为另一个表的2列
我有两个表,Mysql 将一个表的主键上的外键构造为另一个表的2列,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,我有两个表,用户和问题 User ID Security_Question_Id_First Security answer_First Security_question_ID_Second Security_Answer_Second Questions ID Security Questions 我需要在Security_question_Id_First和Id of Questions表以及Se
用户
和问题
User
ID
Security_Question_Id_First
Security answer_First
Security_question_ID_Second
Security_Answer_Second
Questions
ID
Security Questions
我需要在Security_question_Id_First和Id of Questions表以及Security_question-Id-Second和Id of Questions表上设置外键约束
目前,我创建了用户和问题表,其中用户除了Id之外只有安全性问题Id第一安全性答案第一。安全性问题Id第一和问题Id表之间存在外部约束。当我尝试添加具有安全性问题Id第二和问题Id表的外部约束时,它引发了一个错误。您能建议如何在一个表(用户)的两列和另一个表(问题)的主键之间添加外部约束吗?要改进您的问题,请添加
SHOW CREATE table
输出。对于有问题的两个表,请添加您运行的SQL以添加约束,并添加您收到的错误。通常不会导致错误。你能告诉我们确切的错误吗?这是因为你不应该在数据库中有这样的结构。您应该有一个子表UserSecurityquestion。任何时候,如果您使用诸如XXX1、XXX2之类的名称命名列,则表示您需要一个相关的表。@HLGEM您是对的,但您不会因为错误的做法而得到错误。允许两列FK到同一列。感谢各位的快速响应。正在获取的错误在用户表中。security_question_id-second的默认值为0,在创建外部约束时,搜索questions表以查看主键的值是否为0,因此我得到错误“无法添加或更新子行:外键约束失败”.我已采纳HLGEM的建议,并参考中定义的结构。