一、前言
本文你将会学到
- 什么是主键 PRIMARY KEY ?
- 主键必须是唯一的吗?
- 如何设置表的主键?
- 主键和唯一索引有什么区别?
二、什么是主键 PRIMARY KEY ?
主键是唯一标识表中每一行的一列或一组列。主键遵循以下规则:
- 主键必须包含唯一值。如果主键由多个列组成,则这些列中的值组合必须是唯一的。
- 主键列不能有值。任何插入主键列的尝试都将导致错误。请注意,MySQL 隐式地将约束添加到主键列。
- 一个表只能有一个主键。
由于MySQL处理整数的速度更快,因此主键列的数据类型应该是整数,例如。并且应确保主键的整数类型的值范围足以存储表可能具有的所有可能行。
三、主键必须是唯一的吗?
是的,主键必须是唯一的。
四、如何设置表的主键?
我们可以在创建表的时候设置主键。
如果主键有一列,则可以将该约束用作列约束。
CREATE TABLE table_name( primary_key_column datatype PRIMARY KEY, );
也可以使用表约束。
CREATE TABLE table_name ( primary_key_column datatype, PRIMARY KEY(primary_key_column) );
当主键有多个列时,必须将约束用作表约束。
CREATE TABLE table_name ( primary_key_column1 datatype, primary_key_column2 datatype, PRIMARY KEY ( column_list ) );
更新表结构的时候也可以设置主键。
ALTER TABLE table_name ADD PRIMARY KEY(column_list);
五、主键和唯一索引有什么区别?
- PRIMARY KEY 不能为 NULL
- UNIQUE INDEX 可以为 NULL
如何添加唯一索引。
ALTER TABLE users ADD UNIQUE INDEX username_unique (username ASC) ;