Interested to understand this problem. It only happens in Windows, not MacOS. 
Running python 2.7.3. sqlite3 3.7.12. The following script:

    import sqlite3
    table_name = 'table_name'
    conn = sqlite3.connect('data2.db')
    c = conn.cursor()
    
    sql = 'create table if not exists ' + table_name + ' (id integer)'
    c.execute(sql)
    sql = 'drop table ' + table_name
    c.execute(sql)
    
    sql = 'create table if not exists ' + table_name + ' (id integer)'
    c.execute(sql)
    
    sql = 'insert into ' + table_name + ' (id) values (%d)' % 97
    c.execute(sql)
    
    conn.commit()

Fails every other time it is executed. Here's the error:
   Traceback (most recent call last):
     File "C:/Users/potrebic/PycharmProjects/play/play.py", line 15, in <module>
       c.execute(sql)
   sqlite3.OperationalError: no such table: table_name

line 15 is the execute of the 'insert' stmt.

If the "if not exists" is removed from line 11, then the scripts works every 
time.

(Note - on MacOS it succeeds every time).
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to