创建表时可通过PRIMARY KEY关键字定义主键,mysql自动创建主键索引并保证唯一非空;2. 已有表可使用ALTER table ADD PRIMARY KEY添加主键,需确保字段无重复和NULL值;3. 删除主键使用ALTER TABLE DROP PRIMARY KEY,若含AUTO_INCREMENT属性需注意处理顺序;4. 支持复合主键,用多个字段组合创建主键索引,确保组合唯一。主键索引提升查询效率并保障数据完整性。

在 MySQL 中创建主键索引,可以通过定义表结构时指定主键字段,数据库会自动为其创建主键索引(PRIMARY KEY INDEX)。主键具有唯一性和非空性,常用于标识表中的每一行数据。
1. 创建表时定义主键
在 CREATE TABLE 语句中使用 PRIMARY KEY 关键字来创建主键索引。
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, email VARCHAR(100) );
上述语句中,id 字段被设为主键,MySQL 会自动为其创建名为 PRIMARY 的索引,并启用自增属性。
2. 修改已有表添加主键
如果表已经存在但没有主键,可以使用 ALTER TABLE 添加主键索引。
ALTER TABLE users ADD PRIMARY KEY (id);
注意:添加主键前,确保该字段没有重复值且不包含 NULL。
3. 删除主键
若需删除主键(例如更换主键字段),可执行:
ALTER TABLE users DROP PRIMARY KEY;
如果主键字段有 AUTO_INCREMENT 属性,可能需要先移除该属性或先删除索引。
4. 复合主键(多字段主键)
有时需要多个字段共同作为主键,例如关联表:
CREATE TABLE orders_products ( order_id INT, product_id INT, quantity INT, PRIMARY KEY (order_id, product_id) );
此时,order_id 和 product_id 的组合必须唯一,MySQL 会为这个组合创建主键索引。
基本上就这些。主键索引是表设计的基础,合理设置能提升查询效率并保证数据完整性。


