gpt4 book ai didi

sql - 主键还是唯一索引?

转载 作者:行者123 更新时间:2023-11-29 18:28:51 24 4
gpt4 key购买 nike

在工作中,我们有一个带有唯一索引而不是主键的大型数据库,并且一切正常。

我正在为一个新项目设计新数据库,但我遇到了困境:

在数据库理论中,主键是基本元素,这没问题,但是在实际项目中,两者的优缺点是什么?

你在项目中使用什么?

编辑: ...MS SQL 服务器上的主键和复制怎么样?

最佳答案

什么是唯一索引?

列上的唯一索引是该列上的索引,它还强制执行约束,即该列中的两个不同行中不能有两个相等的值。示例:

CREATE TABLE table1 (foo int, bar int);CREATE UNIQUE INDEX ux_table1_foo ON table1(foo);  -- Create unique index on foo.INSERT INTO table1 (foo, bar) VALUES (1, 2); -- OKINSERT INTO table1 (foo, bar) VALUES (2, 2); -- OKINSERT INTO table1 (foo, bar) VALUES (3, 1); -- OKINSERT INTO table1 (foo, bar) VALUES (1, 4); -- Fails!Duplicate entry '1' for key 'ux_table1_foo'

最后一次插入失败,因为当它第二次尝试将值 1 插入该列时,它违反了 foo 列上的唯一索引。

在 MySQL 中,唯一约束允许多个 NULL。

可以在多个列上创建唯一索引。

主键与唯一索引

相同之处:

  • 主键意味着唯一索引。

不同之处:

  • 主键也意味着 NOT NULL,但唯一索引可以为空。
  • 只能有一个主键,但可以有多个唯一索引。
  • 如果没有定义聚集索引,则主键将是聚集索引。

关于sql - 主键还是唯一索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45902969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com