【问题标题】:How can I link multiple tables in MySQL database other than using primary key-foreign key relation?除了使用主键外键关系外,如何链接 MySQL 数据库中的多个表?
【发布时间】:2016-08-10 07:21:54
【问题描述】:

我在数据库中有名为“studentdetails”、“class”、“obtainedmarks”和“subject”的表。 我在表'studentdetails'中有一个名为'STUDENTID'的主键,它作为外键连接到其他表。

我想在同一个表“studentdetails”中再创建一个主键,取三列(“STUDENTID”、“CLASS”、“ROLLNO”),这样我就可以使用与“obtainedmarks”三列的外键关系' 表。

我怎样才能建立这样的关系,因为我们只能在一个表中创建一个主键?

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    Mysql 当然允许外键关系跨越多个列。事实上,manual 中甚至还有一个完整的示例。因此,您的关系可能看起来像

     CONSTRAINT fk_multi FOREIGN KEY (`studentid`, `class`,`subject`)
     REFERENCES other_table (`studentid`, `class`,`subject`)
     ON DELETE CASCADE ON UPDATE CASCADE,
    

    但是请注意,进入 REFERENCES 部分的是列的名称,而不是其他表上的索引名称。

    进入主键问题,确实每个表只能有一个主键。但是没有什么可以阻止您在引用的三列上创建复合唯一键。

    【讨论】:

    • 这是一个非常有用的参考@e4c5 现在我知道主键不是外键的强制需要。
    • 很高兴能帮上忙
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    相关资源
    最近更新 更多