由于DoS攻击,MySQL表中存在重复的主键

由于DoS攻击,我们有一个MySQL数据库,其中包含重复的主键索引条目。 通过selectID(它只会显示一行,而不是两个),但是如果您通过用户名或密码select,它将显示两行。 是否可以删除主键,删除重复的行,然后重新索引主键?

我们发现在尝试修复表格后出现了重复项。

我的头顶上有些选项:

  • 创build一个具有唯一约束的新列,删除原始列,并使新的一个你的PK。

  • 或者,使用新的PK创build一个新表,复制除重复列以外的所有内容,删除原始表并重新命名新的表。

你为什么不做一个备份的表,并尝试一下呢?

如果你可以从表中删除logging,下面的sql命令将删除最年轻的重复logging。

delete from table1 where ID in (select max(ID), username from table1 group by username)