欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

无主键mysql表创建主键

程序员文章站 2022-06-02 15:56:06
...

这是笔者在实际工作过程中遇到的问题。
背景:
由于一些原因,导致以前的数据库中的一些表是没有主键的,这样在主库执行批量删除和更新时,备库无法追上主库

那么,以前留下来的表需要重新建立主键,但是这里可能会遇到一些表,你无法选出一些字段组合,作为主键。那么这时该怎么办?

一般出现这种情况,首先你需要考虑:该数据表是否是分区表?

怎么查看是分区表还是非分区表:

语法:

SHOW CREATE TABLE 表名;

该语法可以看到建表语句,通过建表语句你可以很直观的看到是否为分区表,且分区字段是什么。

那么,回到原来的问题:如何为已建的数据表建立主键?这里就分为两种情况:分区表和非分区表。

因为,分区表的分区字段必须包含在主键内

1 非分区表

新增主键自增长id

语法:以数据库表为test_table为列

alter table test_table add id BIGINT(30);
alter table test_table change id id BIGINT(30) not null AUTO_INCREMENT PRIMARY KEY;

2 分区表

新增主键自增长id

语法:以数据库表为partition_table为列,该分区表的分区字段为:Day

alter table partition_table add id BIGINT(30) not null auto_increment ,add primary key(id,`Day`);
相关标签: mysql,主键