- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因为我从物化 View 中提取了数千条记录 Matview
, 我想用 find_each
将其分成批处理以释放内存。
但是,当我运行以下命令时:
Matview.where('p_id > 100').find_each {|m| m }
我得到以下错误:
PG::SyntaxError: ERROR: zero-length delimited identifier at or near """"
经过研究,我发现您无法运行 find_each
在没有主键的表上。
我尝试将唯一 ID 添加到 Matview
使用:
CREATE UNIQUE INDEX index_mv ON matview(p_id)
虽然这很成功,但并不能替代主键。
我尝试使用以下方法向我的物化 View 添加主要约束:
ALTER MATERIALIZED matview ADD CONSTRAINT mv_pk primary key (p_id) disabled
但是失败了。
一般来说,我的问题是,如何运行 find_each
在物化 View 上,也许具体来说,如何将主键添加到物化 View 以便我可以运行 find_each
?
编辑:为清楚起见,我没有 id
Matview
中的列.如果我有的话,我听说它可能会被事件记录识别为默认主键,但我还没有测试过。
最佳答案
ActiveRecord
不关心它是否真的是数据库中的主键,但您需要使用 primary_key= 方法在您的对象上设置 primary_key
字段.
所以像这样:
class Matview < ActiveRecord::Base
self.table_name = 'MATERIALIZED_VIEW_NAME_HERE'
self.primary_key = 'ID_COLUMN_NAME_HERE'
end
关于postgresql - 你如何运行 ActiveRecord `find_each` 到 postgres 中的物化 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29038413/
使用 PostgreSQL 运行 Rails 3, 我有一个迁移,更新数百万条小记录。 Record.find_each do |r| r.doing_incredibly_complex_stu
有没有办法在django中使用find_each? 根据 rails 文档: This method is only intended to use for batch processing of l
我有类似这样的代码。 @deliveries = User.find_uniq_deliveries(...) . . . (many conditions added using 'named_sc
我有这样的关系 users = User.joins(:occupation).includes(:occupation) count = 0 users.find_each do |u| cou
我有类似这样的代码。 @deliveries = User.find_uniq_deliveries(...) . . . (many conditions added using 'named_sc
我正在查看说明如何使用“find_each”方法的官方 Rails 文档。这是他们给出的例子 Person.where("age > 21").find_each do |person| pers
引用:http://api.rubyonrails.org/classes/ActiveRecord/Batches.html . 是执行find_each线程安全?换句话说,我可以做类似的事情吗 c
给定这个模型: class User < ActiveRecord::Base has_many :things end 然后我们可以这样做:: @user = User.find(123) @u
我收到以下错误: PGError: ERROR: operator does not exist: character varying >= integer LINE 1: ...CT "game
我尝试使用 ActiveRecord 的 find_each 方法运行大约 50,000 条记录的查询,但它似乎忽略了我的其他参数,如下所示: Thing.active.order("created_
我有一个 Rails 应用程序,可以处理 mysql 数据库中的大量(数百万)条记录。一旦开始工作,其内存使用量就会以每秒 50MB 的速度快速增长。使用 oink 等工具,我能够将根本原因缩小到一个
我正在尝试编写一个函数,该函数按一个非常大的表(数百万行)中的某些列进行分组。有什么方法可以让 find_each 处理这个问题,或者如果我不想按 id 列排序是不可能的吗? 我查询的 SQL 是:S
我可以像这样使用 Rails find_each 方法: User.find_each(:batch_size => 10000) do |user| ------ end 使用 find_eac
因为我从物化 View 中提取了数千条记录 Matview , 我想用 find_each将其分成批处理以释放内存。 但是,当我运行以下命令时: Matview.where('p_id > 100')
在 Rails 中,find_each和 where用于从 ActiveRecord 支持的数据库中检索数据。 您可以将查询条件传递给where,例如: c = Category.where(:nam
我正在从我的数据库中加载数据,并且正在使用分组依据进行求和计算。 ElectricityReading.sum(:electricity_value, :group => "electricity_t
我正在尝试逐步浏览使用 find_each 检索到的记录列表。 我根据此 stack overflow post 中的答案构建了我的 Controller 代码。 ,但我仍然收到“没有给出 block
我有一个包含超过 50 万条记录的表,目前我正在以这种方式获取数据: Account.find_each(:conditions =>{:status =>STATUS[:waiting]}) d
我想知道如何在 rspec 中测试 find_each 调用。我习惯于简单地 stub 我希望我的模型返回的内容,因此我不会像这样依赖数据库中的测试数据: MyClass.stub(:find).an
我是一名优秀的程序员,十分优秀!