首页 > 解决方案 > 为什么我们需要表中的主键?

问题描述

首要的关键:

唯一键:

几乎我们使用主键来唯一标识每一行,所以唯一键也是如此。

我不确定我是对还是错,但是如果我们创建一个具有非空约束的唯一键将提供与主键提供的几乎相同的行为。

例如:

CREATE TABLE Persons (
   ID int NOT NULL UNIQUE,
   LastName varchar(255) NOT NULL,
   FirstName varchar(255),
   Age int);

那么为什么我们真的需要一个主键,因为一个唯一的键可以帮助我们实现我们想要的任何东西呢?

我们也可以使用唯一键作为引用表的外键。

标签: mysqlsql

解决方案


许多关系纯粹主义者将提升一个键作为“主键”视为错误1,并认为应该平等对待所有候选键。如果您属于那种思想流派(就像您看起来那样),那么您是正确的,您不需要PK。


1在SQL本身的设计中,在具备这个特性。

同样,理论家认为由零列组成的键没有问题(声明该键的表确实有意义,并且只能包含 0 或 1 行)。但是这里 SQL 会阻止你声明这样的键。


推荐阅读