我在数据库中有名为'studentdetails','class','gotmarks'和'subject'的表。 我在表'studentdetails'中有一个名为'STUDENTID'的主键,它作为外键连接到其他表。
我想在同一个表'studentdetails'中再创一个主键,取三列('STUDENTID','CLASS','ROLLNO'),这样我就可以使用外键关系到'获得标记的三列' 'table。
如何建立这样的关系,因为我们只能在表中创建一个主键?
答案 0 :(得分:1)
Mysql当然允许外键关系跨越多个列。事实上,manual中甚至有一个完整的例子。因此,您的关系可能类似于
CONSTRAINT fk_multi FOREIGN KEY (`studentid`, `class`,`subject`)
REFERENCES other_table (`studentid`, `class`,`subject`)
ON DELETE CASCADE ON UPDATE CASCADE,
但请注意,REFERENCES部分的内容是列的名称,而不是该另一个表上的索引名称。
遇到主键问题,每个表只能有一个主键。但是没有什么可以阻止您在引用的三列上创建复合唯一键。