如何使用sqlite3 gem for Ruby将CSV文件导入SQLite数据库
下面是我的.CSV文件的一个示例:如何使用sqlite3 gem for Ruby将CSV文件导入SQLite数据库,ruby,sqlite,csv,sqlite3-ruby,Ruby,Sqlite,Csv,Sqlite3 Ruby,下面是我的.CSV文件的一个示例: column1,column2 data,moreData foo,bar cats,dogs 使用Ruby和sqlite3 gem,有没有办法创建SQLite数据库并将.CSV数据导入其中?我不相信通过CSV导入/导出数据是通过sqlite3gem本身完成的。您可以通过CSV库将数据输入/输出Ruby对象,然后只需通过ActiveRecord或您正在使用的任何ORM将数据读取/写入DB即可 应该用Ruby为你做。如果您碰巧也在使用Rails 3.2,我相信
column1,column2
data,moreData
foo,bar
cats,dogs
使用Ruby和sqlite3 gem,有没有办法创建SQLite数据库并将.CSV数据导入其中?我不相信通过CSV导入/导出数据是通过
sqlite3
gem本身完成的。您可以通过CSV库将数据输入/输出Ruby对象,然后只需通过ActiveRecord
或您正在使用的任何ORM将数据读取/写入DB即可
应该用Ruby为你做。如果您碰巧也在使用Rails 3.2,我相信FasterCSV是Rails的
CSV
lib的默认后台实现。用CSV lib解析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]]
需要“sqlite3”
需要“csv”
db=SQLite3::Database.new”:内存:
#创建数据库
rows=db.execute您可以从ruby调用sqlite3二进制文件:
%x(
sqlite3“#{pathToDatabase}”是的,我想我需要以其他方式解析CSV文件。感谢tip.Hm,似乎在它的根目录下,脚本必须循环遍历CSV文件并将行/项插入数据库。我说得对吗?我确信您可以使用Ruby的可枚举方法(例如)要成批执行(比如500个),然后一次执行所有操作(只需生成正确的sql并将其与正确的数组相匹配)。