Created
May 17, 2012 08:44
-
-
Save jinleileiking/2717464 to your computer and use it in GitHub Desktop.
Sqlite using ruby
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'sqlite3' | |
db = SQLite3::Database.new( "ec00" ) | |
begin | |
puts "dropping tables....." | |
db.execute("drop table member;") | |
db.execute("drop table rule;") | |
puts "done...." | |
rescue | |
puts "none table existed!" | |
end | |
puts "Creating tables" | |
begin | |
cmd = "create table member(member varchar(8) primary key " | |
#cmd = "create table member(member varchar(8) " | |
(1..16).each do |time| | |
cmd << ", rule#{time} INTEGER" | |
end | |
cmd << ");" | |
db.execute(cmd) | |
db.execute("create table rule(number integer primary key, content varchar(2048));") | |
rescue | |
puts "Table has already created!!" | |
end | |
puts "Creating rules" | |
(1..50).each do |time| | |
db.execute("INSERT INTO rule VALUES ( #{time}, 'This is rule number #{time}');") | |
end | |
puts "Creating members" | |
start = Time.now | |
#db.execute("PRAGMA synchronous=OFF;") | |
db.execute("BEGIN TRANSACTION;") | |
(1..10000).each do |member| | |
cmd = "" | |
cmd << "INSERT INTO member VALUES ( #{member}" | |
(1..16).each do |time| | |
cmd << ", #{member / 100 + time}" | |
end | |
cmd << ");" | |
db.execute(cmd) | |
end | |
db.execute("COMMIT TRANSACTION;") | |
tend = Time.now | |
puts "Start =\t #{start.min} : #{start.sec} : #{start.usec}" | |
puts "End = \t #{tend.min} : #{tend.sec} : #{tend.usec}" | |
puts "Diff =\t #{tend - start}" | |
puts "----" * 10 | |
p db.execute( "select * from member;" ) | |
p db.execute( "select * from rule;") | |
def run | |
db = SQLite3::Database.new( "ec00" ) | |
rules = [] | |
start = Time.now | |
result = db.execute("SELECT * FROM member WHERE member = 40") | |
result = result[0] | |
result[1..result.size].each do |rule| | |
rules << db.execute("SELECT content FROM rule WHERE number = #{rule}") | |
end | |
tend = Time.now | |
pp result | |
pp rules | |
puts "Start= #{start.min} : #{start.sec} : #{start.usec}" | |
puts "End= #{tend.min} : #{tend.sec} : #{tend.usec}" | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment