我有一个带变量的 Ruby 散列:
- 一个二元字符串数组
- 一个整数
我尝试了以下两种方法将哈希中的元素插入到 SQLite 3 数据库中:
myRubyHash.each do |k, v|
x=[k[0],k[1],v]
db.execute "INSERT INTO MyTable VALUES ( ?, ?, ? )", x
end
还有,
myRubyHash.each do |x|
db.execute "INSERT INTO MyTable VALUES ( ?, ?, ? )", x
end
第一个要快得多(但仍然很慢)。有没有更快的方法来解决这个问题?
如果有帮助,我的 SQLite 3 表是由以下人员创建的:
rows = db.execute <<-SQL
CREATE TABLE Assoc_words_p (
name1 varchar(30),
name2 varchar(30),
val int,
PRIMARY KEY (name1,name2)
);
SQL
谢谢
最佳答案
我发现 prepare 语句可以如下使用:
stmnt1 = db.prepare( "INSERT INTO Table(name1,name2,val) VALUES (?, ?, ?)" )
myRubyHash.each do |k, v|
stmnt1.execute(k[0],k[1],v/2)
end
关于ruby - 将元素从 Ruby 哈希插入到 SQLite 3 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8867590/