有没有办法通过 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。
我刚刚在 phpMyAdmin 中设置复合外键时遇到了类似的问题,也许我的解决方案也可以帮助您。
这是我的设置:
正如您所看到的,我的 ConferenceRoom 表中有一个复合主键,其中一部分也是streetaddress
在表 Office 中(这可能与您的问题不同)。
该复合主键将由表 InstPicture 中的复合外键引用,但对我来说问题是,尽管将两者都定义为主键索引,phpMyAdmin 只会引用name
ConferenceRoom 主键中的列,而不是office_streetaddress
column.
我在这里缺少的是我没有设置会议室和办公室之间的关系before尝试在 ConferenceRoom 和 InstPicture 之间建立一个。我想我忘记了按照数据库方法论的规定首先处理强实体。
当会议室和办公室之间的关系被定义后,office_streetaddress
列显示在索引列列表中,并且可以被引用conferenceroom_office_streetaddress
表 InstPicture 中的列。
我希望这也能帮助您,也许尝试为您的 Log.Service 列创建一个单独的索引。或者,如果这是一个 FK,请建立其关系,然后重试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)