mysql - 在 mysql 中创建带约束或不带约束的主键

标签 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))

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

最佳答案

主键既是not null又是unique。所以,这与主键非常非常相似:

create table users (
    id int not null unique
)

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

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

  • 不为空
  • 列是唯一的。
  • 每个表只允许一个主键声明(尽管主键中可以有多个列)。

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

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

关于mysql - 在 mysql 中创建带约束或不带约束的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40902328/

相关文章:

mysql - 是否可以限制一个表在mysql中只有一条记录?

mysql - SQL:泛化查询

java - 如何停止比例图像缩放?

java - @NotNull 原语约束,为什么?

django - Python/Django : Create table with two primary_key using cql engine

mysql - BizTalk 2009 社区 ODBC 适配器 - 从 MySQL 存储过程生成架构

java - Spring Boot native 查询抛出错误,但在mysql中有效

grails - 约束

hibernate ID 生成器

mysql - 在 MySQL 中为 3 个表创建单个插入查询