G
Gilles Ganault
Hello
I'm trying to use the APSW package to access a SQLite database, but
can't find how to check if a row exists. I just to read a
tab-separated file, extract a key/value from each line, run "SELECT
COUNT(*)" to check whether this tuple exists in the SQLite database,
and if not, run an INSERT.
The problem is that "if not row" isn't run:
==========
import apsw
connection=apsw.Connection("test.sqlite")
cursor=connection.cursor()
data = {}
f = open("data.tsv", "r")
textlines = f.readlines()
f.close()
p = re.compile('^(\d+)\t(\d+)$')
for line in textlines:
m = p.search(line)
if m:
data[m.group(1)] = m.group(2)
for (key,value) in data.items():
sql = "SELECT COUNT(*) FROM mytable WHERE key='%s'" % key
row=cursor.execute(sql)
#Why not run?
if not row:
print "Row doesn't exist : %s" % key
sql = "INSERT INTO mytable (key,value) VALUES ('%s',%u)" %
key,value
cursor.execute(sql)
connection.close(True)
sys.exit()
==========
Any idea what's wrong with the above?
Thank you.
I'm trying to use the APSW package to access a SQLite database, but
can't find how to check if a row exists. I just to read a
tab-separated file, extract a key/value from each line, run "SELECT
COUNT(*)" to check whether this tuple exists in the SQLite database,
and if not, run an INSERT.
The problem is that "if not row" isn't run:
==========
import apsw
connection=apsw.Connection("test.sqlite")
cursor=connection.cursor()
data = {}
f = open("data.tsv", "r")
textlines = f.readlines()
f.close()
p = re.compile('^(\d+)\t(\d+)$')
for line in textlines:
m = p.search(line)
if m:
data[m.group(1)] = m.group(2)
for (key,value) in data.items():
sql = "SELECT COUNT(*) FROM mytable WHERE key='%s'" % key
row=cursor.execute(sql)
#Why not run?
if not row:
print "Row doesn't exist : %s" % key
sql = "INSERT INTO mytable (key,value) VALUES ('%s',%u)" %
key,value
cursor.execute(sql)
connection.close(True)
sys.exit()
==========
Any idea what's wrong with the above?
Thank you.