Mysql 如何添加可以报告1062错误的主键?

Mysql 如何添加可以报告1062错误的主键?,mysql,Mysql,首先,我使用Navicat取消表中的三个主键,然后我想恢复主键,但我得到了键“primary”的重复条目“1539669761000-6708-200809260001”。我现在不敢做任何操作,因为数据太多了。现在如何恢复主键 这是我使用的语句 ALTER TABLE `pm_raw_p_reshost` ADD PRIMARY KEY (`DCTIME`, `KBP`, `KPI_NO`) USING BTREE; 是此表的主键 这样行吗 LOCK TABLES pm_raw_p_resho

首先,我使用Navicat取消表中的三个主键,然后我想恢复主键,但我得到了键“primary”的重复条目“1539669761000-6708-200809260001”。我现在不敢做任何操作,因为数据太多了。现在如何恢复主键

这是我使用的语句

ALTER TABLE `pm_raw_p_reshost`
ADD PRIMARY KEY (`DCTIME`, `KBP`, `KPI_NO`) USING BTREE;
是此表的主键

这样行吗

LOCK TABLES pm_raw_p_reshost;

ALTER TABLE `pm_raw_p_reshost`
ADD PRIMARY KEY (`DCTIME`, `KBP`, `KPI_NO`) USING BTREE;

UNLOCK TABLES;

任何答复都将不胜感激

主键也是唯一键,因此问题在于:字段组合:
DCTIME
KBP
KPI\u NO
已经有多个唯一行无法创建主键

可能的解决办法:

  • 删除重复项并重新创建PK,选择行,决定保留哪些行

    SELECT * from pm_raw_p_reshost where `DCTIME`=1539669761000 and `KBP`=6708 and `KPI_NO`=200809260001
    
  • 创建一个具有所需PK的新表,并使用INSERT IGNORE对新表执行操作,重复值将自动删除