回答

收藏

如何删除两个完全相同的行之一?

技术问答 技术问答 221 人阅读 | 0 人回复 | 2023-09-14

我正在清理没有主键的数据库表(我知道,我知道他们在想什么?)。我不能添加主键,因为列中的重复项将成为键。重复值来自两行之一,各方面都是一样的。我不能通过GUI删除行(在这种情况下是MySQL
0 r! Y) M+ |" `( l8 \7 AWorkbench,但我正在寻找一种与数据库无关的方法),因为它拒绝没有主键(或至少是UQ- a# p' {7 q, A7 d0 t; J  c* `
NN列表上执行任务,我不能添加主键,因为列中重复的键将成为主键。重复值来自一个…9 Y3 C* O/ z* H6 e
如何删除一对双胞胎?
/ I/ f+ R6 j  c/ q, H2 f) l; S                                                               
: r* S! l" T" ~, j* }, l" m1 y    解决方案:                                                               
1 N2 p7 \# N% d9 _$ Y& U                                                                一种解决您问题的方法是使用相同的架构创建一个新的表,然后执行以下操作:
# B( X/ X2 Z$ c* E& x1 LINSERT INTO new_table (SELECT DISTINCT * FROM old_table)然后只重命名表。' K/ p, w8 ~2 Y  h; L- R
当然,您将需要与表所需的磁盘空间大致相同的空间来执行此操作!1 D8 X8 M  b, I6 I2 b6 t
它不高效,但很简单。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则