ALTER TABLE失败

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
v4.0.10
【问题描述】
ALTER TABLE tpccSpark.bmsql_order_line2 ADD PRIMARY KEY (ol_w_id,ol_d_id,ol_o_id,ol_number);
image


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

mysql> ALTER TABLE tpccSpark.bmsql_order_line2 ADD PRIMARY KEY (ol_w_id,ol_d_id,ol_o_id,ol_number);
ERROR 1062 (23000): Duplicate entry ‘’ for key ‘PRIMARY’

建议按主键检查数据,提示是有重复数据

命令是什么,怎么检查

建议考虑数据量后执行下面的语句,如果能查询出记录,就是存在主键重复的记录

SELECT
ol_w_id,ol_d_id,ol_o_id,ol_number,count(1)
FROM tpccSpark.bmsql_order_line2
GROUP BY ol_w_id,ol_d_id,ol_o_id,ol_number
HAVING count(1) > 1

注意关注报错内容,主键冲突排查方式基本上数据库都是相同的方式。