我在数据库中有名为“ studentdetails”,“ class”,“ obtainedmarks”和“ subject”的表。我在表'studentdetails'中有一个名为'STUDENTID'的主键,该主键作为外键连接到其他表。
我想在同一个表'studentdetails'中再增加一个主键,该表使用三列('STUDENTID','CLASS','ROLLNO'),以便可以将外键关系用于“获得标记”表的三列。
我如何建立这样的关系,因为我们只能在一个表中做一个主键?
MySQL当然允许外键关系跨越多个列。实际上,手册中甚至有完整的示例。因此,您的关系可能看起来像
CONSTRAINT fk_multi FOREIGN KEY (`studentid`, `class`,`subject`)
REFERENCES other_table (`studentid`, `class`,`subject`)
ON DELETE CASCADE ON UPDATE CASCADE,
但是请注意,REFERENCES部分中的内容是列的名称,而不是该其他表上的索引的名称。
谈到主键问题,确实每个表只能有一个主键。但是没有什么可以阻止您在所引用的三列上创建复合唯一键。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句