在 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))
在这种情况下,我一直在寻找约束的含义,但我只找到了如何使用它们,而不是它实际上是什么。
最佳答案
主键既是not null
又是unique
。所以,这与主键非常非常相似:
create table users (
id int not null unique
)
主键的一个附加功能是它通常也是表的聚集索引。
主键声明是约束。它具有以下属性:
- 列
不为空
。 - 列是唯一的。
- 每个表只允许一个主键声明(尽管主键中可以有多个列)。
此外,主键列通常形成聚集索引。
除了第三个条件,可以使用多个约束声明来声明它们。
关于mysql - 在 mysql 中创建带约束或不带约束的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40902328/