交叉检查数组并从数据库中删除剩余的内容



我有两个数组,一个包含来自旧数据库的信息,一个包含来自新数据库的信息。我想检查什么是在旧的DB不是在新的DB,并删除它。

我已经做了array1 - array2,并把结果在一个数组,但我不知道如何从数据库中删除它们。任何枚举我试图调用它似乎打破/不喜欢与固定值一起使用。

使用ruby 1.8.7在oracle数据库上运行,以防有更简单的方法在oracle内部完成(第一次使用oracle,所以我不熟悉)

如果您使用AR ORM,您可以这样做:

(array1 - array2).each(&:destroy)

你可以直接delete_all:

(array1 - array2).delete_all

基于注释编辑:

由于array1array2id 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日结束,请考虑更新

相关内容

  • 没有找到相关文章

最新更新