ruby - 如何使用 Ruby 的 sqlite3 gem 将 CSV 文件导入 SQLite 数据库

标签 ruby sqlite csv sqlite3-ruby

这是我的 .CSV 文件的示例:

column1,column2
data,moreData
foo,bar
cats,dogs

使用 Ruby 和 sqlite3 gem,有没有办法制作 SQLite 数据库并将 .CSV 数据导入其中?

最佳答案

使用 csv 库解析 CSV,然后像往常一样插入它。

require "sqlite3"
require 'csv'

db = SQLite3::Database.new ":memory:"

# Create a database
rows = db.execute <<-SQL
  create table users (
    name varchar(30),
    age int
  );
SQL

csv = <<CSV
name,age
ben,12
sally,39
CSV

CSV.parse(csv, headers: true) do |row|
  db.execute "insert into users values ( ?, ? )", row.fields # equivalent to: [row['name'], row['age']]
end

db.execute( "select * from users" ) # => [["ben", 12], ["sally", 39]]

关于ruby - 如何使用 Ruby 的 sqlite3 gem 将 CSV 文件导入 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11869039/

相关文章:

ruby - 如何模拟 Net::HTTP::Post?

ios - 将 sqlite 数据库用于 iOS (robovm) 与 libgdx

sql - 兼容各种关系型数据库的boolean数据类型

csv - 如何将带有分隔符 ";"的表导入配置单元?

ruby-on-rails - CollectionProxy 与 AssociationRelation

ruby - Ruby 中的 Webdriver,如何检查元素是否存在

arrays - 为什么 Dir.glob ("*.txt").sort 也需要 .each?

SQLite递归查询返回文件路径

python - 如何将 .csv 文件中的列存储到列表中?

sql-server - BCP SQL Server 日期格式无效