首页 文章

通过PhpMyAdmin复合外键约束?

提问于
浏览
6

有没有办法通过PhpMyAdmin接口向InnoDB表添加复合(多列)外键?我已经在目标表中拥有相应的复合主键,并且我可以单列外键约束,但我无法在界面中找到一种方法来执行复合主键 .

Table Log
- Date
- Service
PRIMARY KEY (Date,Service)

Table Issue
- Issue_Id
- Log_Date
- Log_Service
PRIMARY KEY Issue_Id
FOREIGN KEY (Log_Date=Log.Date,Log_Service=Log.Service)

除外键外,一切都已设置好;我进入PhpMyAdmin关系视图,我只能看到如何针对Log.Date设置FK而不是针对Log.Service .

1 回答

  • 2

    我刚刚遇到一个类似的问题,在phpMyAdmin中设置了一个复合外键,也许我的解决方案也可以帮到你 .

    这是我的设置:

    My setup

    正如您所看到的,我在ConferenceRoom表中有一个复合主键,其中一部分也是表Office中 streetaddress 的外键(这可能与您的问题不同) .

    这个复合主键将由表InstPicture中的复合外键引用,但问题是,尽管已将两者都定义为主键索引,但phpMyAdmin仅引用ConferenceRoom主键中的 name 列,而不是 office_streetaddress 专栏 .

    我在这里缺少的是,在尝试设置ConferenceRoom和InstPicture之间的关系之前,我还没有 Build ConferenceRoom和Office之间的关系 . 我想我首先忘了处理强大的问题,正如数据库方法所规定的那样 .

    当在ConferenceRoom和Office之间定义关系时, office_streetaddress 列显示在索引列的列表中,并且可以由表InstPicture中的 conferenceroom_office_streetaddress 列引用 .

    我希望这也可以帮助你,也许尝试为你的Log.Service列创建一个单独的索引 . 或者如果那是FK,请设置其关系,然后再试一次 .

相关问题