mysql - 如何从事件记录对象获取数据库 sql 值?

标签 mysql ruby-on-rails activerecord

我原来的问题是我需要将大量记录插入到数据库中,因此为了加快速度,我想使用 mysqlimport ,它接受行值文件并将它们加载到指定的表中。因此,假设我有模型 Book,我不能简单地使用 book.attributes.values,因为其中一个字段是序列化到 db 的哈希(使用序列化),所以我需要知道该哈希将存储的格式是什么在数据库中。时间和日期字段也是如此。有什么帮助吗?

最佳答案

使用 SQL 插入语句而不是序列化怎么样?

book = Book.new(:title => 'Much Ado About Nothing', author: 'William Shakespeare')

sql = book.class.arel_table.create_insert
  .tap { |im| im.insert(record.send(
            :arel_attributes_with_values_for_create,
            record.attribute_names)) }
  .to_sql

关于mysql - 如何从事件记录对象获取数据库 sql 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30436279/

相关文章:

ruby-on-rails - rails 4 : Forbid creating a parent object when associated one with specified attribute already exists

php - Yii CDbCriteria Joins 的小问题

mysql - 错误: 1064 error in sql query

sql - 从 SUM 中查找日期

mysql - join多表时判断user是否存在于一个sum中

ruby-on-rails - Rails 查询何时调用对 PostGreSQL 的 EXPLAIN 查询?

ruby-on-rails - rails ActiveRecord : How to use bind variables with double quotes on jsonb

sql - 没有特定子记录的父记录的 Rails 范围

mysql - 如何修改这个查询?

php - 将数组添加到 php 变量