Sha*_*edi 3 sql database primary-key
SQL 中的主键是NOT NULL和UNIQUE约束的组合,唯一的区别是表中只能存在一个主键约束。
为什么我们不能只使用NOT NULL和UNIQUE约束来管理?甚至他们都做同样的事情。
主键的定义是:
unique.not null.你问的是第三个条件。嗯,这就是定义。“主键”是一组已明确选择的键,用于唯一标识表中的每一行。“主要”一词意味着每个表只有一个。满足前两个条件的其他键或键组合称为候选主键。
尽管没有严格执行,但主键是引用各个行的最佳方法。例如,它们应该用于外键约束(我接触到的任何数据库都会强制执行外键约束的主键)。多个不同的键引用单个表会混淆数据模型。考虑实体关系建模。链接应该是主键。
为了让大家了解一下主键的使用,一些数据库(例如使用 InnoDB 存储引擎的 MySQL)默认基于主键进行簇表。一个表只能聚集一次,因此使用单个键。