删除MySQL中的重复行_BUT_重新分配所有参考记录以保留记录

时间:2013-11-29 16:08:20

标签: mysql duplicates

我正在尝试在我们的系统中重复删除用户帐户,我知道有很多关于删除/识别重复项的问题(例如Remove duplicate rows in MySQL),但我还没有看到任何要求保持参考记录。

我有一个users表和一个subscriptions表,其外键字段User_ID与两者共有,并设置为CASCADE中的subscriptions

我想删除users表中的所有重复项,但这样做会导致User_ID表中与subscriptions对应的所有记录都因{ {1}}行为。

是否可以CASCADE UPDATE表,将重复记录的users更改为我想保留的记录,而不会与唯一索引冲突,允许所有参考记录相应更新,最后删除重复的用户记录,而无需级联删除?

添加的复杂功能是,users表中的User_ID字段显然已使用User_ID编制索引。


编辑:我应该补充一点,这是一个简化的例子,我们的数据库有100多个表,其中许多表都有基于User_ID的外键。

1 个答案:

答案 0 :(得分:0)

所以最后,正如@MarcB帮助我发现上述情况,正确的答案是在开始时更好地计划;)

所以最后,我们将不得不编写一个手动加入帐户的程序化解决方案。我们很幸运能够为每种对象类型设置DAO / DTO,因此处理参考记录不应该太糟糕,它只是一个激烈的操作,所以需要一些好的计划 wink