【问题标题】:What is the easiest way to insert data in MySQL using a ruby script使用 ruby​​ 脚本在 MySQL 中插入数据的最简单方法是什么
【发布时间】:2014-02-13 13:20:25
【问题描述】:

我做了一个 ruby​​ 脚本,它解析大量 ruby​​ 数据结构中的文件,例如哈希。

我需要将所有这些数据插入到 MySQL 数据库中。

我发现了什么:

mysql2

tmtm

dbi

有一些本地方法可以做到这一点吗?

感谢您的帮助

编辑

假设我有一个包含 100 个条目的哈希,如下所示:

hash = {"a" => 1, "b" => 2 ..., "c" => 100}

我想在 mysql 上创建一个包含所有这些列的表。我担心 Active Record 很难做到这一点。

PS:我没有使用 Rails,只是一个简单的 ruby​​ 脚本

【问题讨论】:

  • 那么 ActiveRecord 是显而易见的答案,但我不知道为什么它不适合你?
  • 我在考虑不要为此使用 ORM。我更喜欢使用纯 SQL。但我会尝试一段时间的活跃记录。

标签: mysql ruby database mysql2


【解决方案1】:

如果我是你,我会更喜欢 ActiveRecord,因为我不必用大量的 SQL 语句弄乱我的代码。此外,activerecord 让生活更轻松。

这样设置

require 'active_record'

ActiveRecord::Base.establish_connection( 
 :adapter => "mysql2",
 :host => "host",
 :username=>"user",
 :password=>"user",
 :database => "your_db"
)

然后使用这样的表格

class SingularTableName < ActiveRecord::Base
  has_many :table_relationship
end

然后这样查询

SingularTableName.all #=> all records
SingularTableName.first #=> first record
SingularTableName.where("query")
SingularTableName.create("...) #=> create a record/row

您可以在这里找到更多方法 => http://api.rubyonrails.org/classes/ActiveRecord/Base.html

更新:

要克服复数表名和默认主键,您可以使用

class AnyName < ActiveRecord::Base
  self.table_name = 'your table name'
  self.primary_key = 'your primary key'
  ...
end

【讨论】:

  • 我发现的所有示例都是使用 Rails。你能帮我举个例子吗?它没有必要的使用关系。只需插入数据。
  • 有效。我遇到了一些问题,比如使用名为type 的列会导致某些保留用作继承的东西。无论如何..谢谢老兄
  • ...和复数形式。 =)
猜你喜欢
  • 1970-01-01
  • 2012-12-13
  • 2012-04-25
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
相关资源
最近更新 更多