我有两个数组,一个包含来自旧数据库的信息,一个包含来自新数据库的信息。我想检查什么是在旧的DB不是在新的DB,并删除它。
我已经做了array1 - array2,并把结果在一个数组,但我不知道如何从数据库中删除它们。任何枚举我试图调用它似乎打破/不喜欢与固定值一起使用。
使用ruby 1.8.7在oracle数据库上运行,以防有更简单的方法在oracle内部完成(第一次使用oracle,所以我不熟悉)
如果您使用AR ORM,您可以这样做:
(array1 - array2).each(&:destroy)
你可以直接delete_all:
(array1 - array2).delete_all
基于注释编辑:
由于array1
和array2
是id
s的数组,您可以简单地将结果数组传递给Merchant.where
子句并将集合一起删除:
ids_for_delete = (array1 - array2)
Merchant.find(ids_for_delete).delete_all
旁注: Ruby 1.8.7和1.9.2版本的维护已于2014年7月31日结束,请考虑更新