Sql 更有效的方法是在Rails中销毁所有内容?
有没有一种更快的方法来销毁rails中的所有内容 我这样问是因为rails对每个记录执行单独的删除sql查询 例如,在搜索4条记录时调用destroy all将运行4个delete sql命令Sql 更有效的方法是在Rails中销毁所有内容?,sql,ruby-on-rails,postgresql,activerecord,performance,Sql,Ruby On Rails,Postgresql,Activerecord,Performance,有没有一种更快的方法来销毁rails中的所有内容 我这样问是因为rails对每个记录执行单独的删除sql查询 例如,在搜索4条记录时调用destroy all将运行4个delete sql命令 Blerg.where("created_at > yesterday").destroy_all (4 results) 然后打电话给 DELETE FROM "blergs" WHERE "blergs"."id" = $1 [["id", 197782]] 4次 有没有办法把它放到一个s
Blerg.where("created_at > yesterday").destroy_all (4 results)
然后打电话给
DELETE FROM "blergs" WHERE "blergs"."id" = $1 [["id", 197782]]
4次
有没有办法把它放到一个sql命令中?您可以随时调用
Blerg.where("created_at > yesterday").delete_all
这只提供一个查询:
DELETE FROM "blergs" WHERE (created_at > '2012-11-26 16:27:56.678872')
请注意,这不会对要删除的对象调用任何回调。您也可以这样做
Blerg.delete_all("created_at > '2012-11-01 00:00:00'")
哪个更简洁。它执行一条SQL语句。回调是一个重要的问题。如果您有任何:dependent=>:destroy关系,它们也不会被删除。是的,任何寻找此答案的人都应该注意不要回调,这非常重要。