【问题标题】:Do composite primary key attributes have to be unique?复合主键属性必须是唯一的吗?
【发布时间】:2018-05-21 17:00:53
【问题描述】:

假设我们创建了下表:

CREATE TABLE example (
    a integer,
    b integer,
    c integer,
    PRIMARY KEY (a, c)
);

显然 a 和 c 的组合必须是唯一的。但是 a 和 c 必须是唯一的吗?

【问题讨论】:

  • 没有。只有组合必须是唯一的才能成为键。
  • 你可以快速测试这个 veeeeery。您是否尝试插入测试并查看发生了什么?
  • 我投票决定将此问题作为题外话结束,因为只要付出微薄的努力就会发现答案。

标签: mysql sql composite-primary-key


【解决方案1】:

不,它们不必分别是唯一的。只有对应该是唯一的。

例子:

a, c
1, 3
2, 3
2, 1
2, 1  -- this will cause unique key violation

INSERT INTO example(a,b,c) VALUES (1,2,3),(2,2,3),(2,3,1);

DBFiddle Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多