优秀的编程知识分享平台

网站首页 > 技术文章 正文

mysql表增加新的主键

nanyue 2025-04-29 02:53:28 技术文章 22 ℃


MySQL 中,给一张没有主键且有大量数据的表添加主键需要谨慎操作,尤其是当表中有大量数据时

1. 检查表结构

首先,查看表结构,确认没有主键:

DESCRIBE your_table_name;

2. 选择合适的主键

选择一个合适的列作为主键,或者创建一个新的自增列作为主键。如果表中没有合适的列,可以添加一个自增列:

ALTER TABLE your_table_name ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY;

3. 添加主键

如果已有合适的列,直接将其设为主键:

ALTER TABLE your_table_name ADD PRIMARY KEY (your_column_name);

4. 处理大量数据

对于大表,直接添加主键可能导致锁表或性能问题。可以分步操作:

1 添加新列(如自增列)

ALTER TABLE your_table_name ADD COLUMN id INT AUTO_INCREMENT;

2 分批更新数据

UPDATE your_table_name SET id = (SELECT @row := @row + 1 FROM (SELECT @row := 0) r) LIMIT 1000;

重复执行,直到所有数据更新完毕。

3 添加主键

ALTER TABLE your_table_name ADD PRIMARY KEY (id);


5. 验证主键

DESCRIBE your_table_name;
最近发表
标签列表