主键约束用于唯一标识表中每一行,要求非空且唯一,可提升查询效率并支持外键引用。创建表时可直接定义单列主键或使用CONSTRAINT命名,如:CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));对已有表添加主键需确保列已NOT NULL且值唯一,语法为ALTER TABLE users ADD PRIMARY KEY (id);删除主键使用ALTER TABLE users DROP PRIMARY KEY;联合主键适用于多字段组合唯一场景,如PRIMARY KEY (order_id, product_id);建议建表时选用自增列或UUID作为主键,避免业务含义,确保数据完整性。

在 MySQL 中,主键约束(PRIMARY KEY)用于唯一标识表中的每一行数据。主键列不允许有 NULL 值,且值必须唯一。合理使用主键可以提高查询效率,并作为外键引用的基础。
创建表时添加主键约束
在定义表结构时,可以直接为某一列设置 PRIMARY KEY 约束。
- 单列主键示例:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50)
);
- 使用 CONSTRAINT 关键字命名主键(可选):
CREATE TABLE users (
id INT,
name VARCHAR(50),
CONSTRAINT pk_users_id PRIMARY KEY (id)
);
对已有表添加主键约束
如果表已经存在但没有主键,可以使用 ALTER TABLE 添加主键。
ALTER TABLE users ADD PRIMARY KEY (id);
注意:添加主键前,确保该列已定义为 NOT NULL,且数据唯一,否则会报错。
删除主键约束
若需移除主键,可通过以下语句实现:
ALTER TABLE users DROP PRIMARY KEY;
注意:一个表只能有一个主键,删除时不需要指定列名,直接使用 DROP PRIMARY KEY 即可。
联合主键(Composite Primary Key)
当多个字段组合才能唯一标识一行时,可使用联合主键。
CREATE TABLE order_items (
order_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (order_id, product_id)
);
此例中,order_id 和 product_id 一起构成主键,单独一个字段可以重复,但组合必须唯一。
基本上就这些。主键是数据库设计的基础,正确使用能有效避免数据冗余和不一致问题。建表时建议明确主键策略,优先选择无业务含义的自增列或 UUID。操作时注意数据完整性,避免添加主键时报错。










