我正在清理没有主键的数据库表(我知道,我知道他们在想什么?)。我无法添加主键,因为该列中有重复项将成为键。重复值来自在所有方面都相同的两行之一。我无法通过GUI删除行(在这种情况下为MySQL Workbench,但我正在寻找一种与数据库无关的方法),因为它拒绝在没有主键(或至少是UQ NN列)的表上执行任务,并且我无法添加主键,因为在列中有重复的键将成为主键。重复值来自一个…
如何删除其中一对双胞胎?
解决您的问题的一种方法是使用相同的架构创建一个新表,然后执行以下操作:
INSERT INTO new_table (SELECT DISTINCT * FROM old_table)
然后只重命名表。
当然,您将需要与表所需的磁盘空间大致相同的空间来执行此操作!
它效率不高,但是非常简单。