在mysql中创建带有约束的主键

时间:2016-12-01 03:50:41

标签: mysql constraints primary-key

在mysql中,说我有:

create table users(
id not null
)

假设我需要将id作为主键。有什么区别:

create table users(
id primary key not null
)

create table users(
id not null
primary key (id))

create table users(
id not null
constraint pk primary key (id))

在这种情况下,我一直在寻找约束的含义,但我只是找到了如何使用它们,而不是它实际上是什么。

1 个答案:

答案 0 :(得分:1)

主键是not nullunique。所以,这与主键非常相似:

create table users (
    id int not null unique
)

主键的另一个附加功能是它通常也是表的聚簇索引。

主键声明约束。它具有以下属性:

  • 列为not null
  • 列是唯一的。
  • 每个表只允许一个主键声明(尽管主键中可以包含多个列)。

此外,主键列通常形成聚簇索引。

除第三个条件外,可以使用多个约束声明来声明它们。