【问题标题】:does the order a composite key is defined matter?定义复合键的顺序是否重要?
【发布时间】:2010-11-08 23:07:55
【问题描述】:

我有一个以 (col1,col2) 作为复合主键的表。 创建表twokeytable(col1 int,col2 int,constraint twokeytable_pk 主键(col1,col2));

和另一个表 col3,col4 具有复合外键的列 (col3,col4) 它引用了(col1,col2) 主键。

对于某些处理,我需要删除外键和主约束。在恢复约束时,键的顺序是否重要?

这些都一样吗?

创建表 fktwokeytable(col3 int,col4 int,constraint fkaddfaa_fk 外键(col4,col3) 引用 twokeytable(col1,col2))

创建表 fktwokeytable(col3 int,col4 int,约束 fkaddfaa_fk 外键(col3,col4) 引用 twokeytable(col1,col2))

【问题讨论】:

    标签: primary-key foreign-key-relationship


    【解决方案1】:

    这应该很容易测试它们是否相同,就好像它们不同一样,您肯定无法将约束重新添加到表中。所以它应该可以在一个小数据集上进行测试。

    如果它有任何性能影响是另一个问题。

    还有你心目中的数据库,因为不同的 SQL 做的事情不同。

    【讨论】:

    • 谢谢你的回复。除了测试,有没有数据库规则说明顺序很重要?我必须为所有主要的数据库系统编写代码。
    • 不确定,我在写一个通用的回复,问的比回答的多。
    • 如果您需要所有数据库系统,请不要使用该语法。大多数不支持以这种方式进行 FK 验证的复合键。通用 = 最小公分母
    猜你喜欢
    • 2019-07-14
    • 2011-07-31
    • 2011-03-28
    • 2012-03-03
    • 2021-07-27
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多