在轨道中插入延迟

时间:2010-09-08 08:49:24

标签: ruby-on-rails mysql-management

怎么办?有一个活跃的记录选项?

2 个答案:

答案 0 :(得分:4)

你可以使用rails monkey patch:

class ActiveRecord::Base
  def self.insert_low_priority(hash)
    keys = hash.keys.map { |v| "`#{v}`" }.join(',')
    values = hash.values.map { |v| sanitize(v) }.join(',')
    connection.insert_sql("INSERT LOW_PRIORITY INTO `#{table_name}` (#{keys}) VALUES(#{values})")
  end
end

将其添加到初始值设定项,例如配置/初始化/ activerecord_insert_low_priority.rb

用法很简单:ModelName.insert_low_priority :column1 => 'value'

答案 1 :(得分:1)

MySQL还提供“INSERT DELAYED”,它与“LOW PRIORITY”的行为略有不同吗?