【问题标题】:confusion on unique key vs PK唯一键与 PK 的混淆
【发布时间】:2020-09-03 12:57:16
【问题描述】:

大家好,我有一个问题。我搜索并搜索了 ok abs 独特的关键概念。却产生了一些疑惑。一个表中只能有一个 PK,但可以有多个唯一索引权。那么,这是否意味着表中的一列将是 PK 并且对于唯一索引可以有多个列。能否请您澄清一下?

【问题讨论】:

    标签: mysql etl teradata-sql-assistant


    【解决方案1】:

    PK 和唯一索引都不必是单列。它们都可以跨越多个列。

    【讨论】:

    • @Godon Bobic 那么,如果两者都可以有多个列,那么 PK 和唯一键之间有什么区别,除了唯一键可以有空值而 Pk 不能。
    • 从概念上讲,没有区别。每个数据库的特定实现可能存在差异。例如,在 InnoDB 中,所有二级索引,无论是唯一的还是其他的,都指向 PK,并且 InnoDB 表总是聚集在它的 PK 上。
    • 感谢您的澄清。
    【解决方案2】:

    你也可以有一个多列primary key,这意味着所有列的组合必须是唯一的并且被索引

    唯一约束仅保证该列中的每一行都是唯一的。

    KEY 是一个索引列,可以是 [UNIQUE |全文 |空间]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      相关资源
      最近更新 更多