为没有唯一键的表设置唯一键

方案一:

create table a_cp  select * from a group by uid,pid;

//创建主键索引

ALTER TABLE `a_cp` ADD PRIMARY KEY `id`(`id`);

//创建uid_pid 唯一索引

ALTER TABLE `a_cp` ADD UNIQUE KEY `uid_pid`(`uid`,`pid`);

// 将 a rename to a_old

// 将a_cp rename to  a;

 

设置到这里感觉是不是没什么问题?

其实是有大问题的,这的确设置了唯一键,但是主键没有自增啊,后面进来的数据就傻逼了。

这时候怎么处理呢?

找到max 设置唯一键 AUTO_INCREMENT  设置 AUTO_INCREMENT的值。

 

方案二:

先创建表 a_cp 各种索引建好了,再 insert into a_cp  数据,这样就不会有上面的问题了。

 

所以当遇到这种情况时,第一种方法不可取,尽量使用第二种。