2013-11-30 22:48:24 +00:00
|
|
|
# 10/28/2013 Sebastian Raschka
|
|
|
|
# Syntax basics for updating sqlite3 data bases
|
|
|
|
|
|
|
|
import sqlite3
|
|
|
|
|
|
|
|
# make connection to existing db
|
|
|
|
conn = sqlite3.connect('zinc_db1.db')
|
|
|
|
c = conn.cursor()
|
|
|
|
|
2013-12-02 23:26:19 +00:00
|
|
|
# update field (no insert if id doesn't exist)
|
2013-11-30 22:48:24 +00:00
|
|
|
t = ('NO', 'ZINC00895033', )
|
|
|
|
c.execute("UPDATE zinc_db1 SET purchasable=? WHERE zinc_id=?", t)
|
|
|
|
print "Total number of rows changed:", conn.total_changes
|
|
|
|
|
2013-12-02 23:26:19 +00:00
|
|
|
|
|
|
|
# update, or insert when id does not exist
|
|
|
|
# here: updates rotatable bonds if record with primary key zinc_id exists,<br>
|
|
|
|
# else inserts new record an sets purchasable to 0
|
|
|
|
c.execute("""INSERT OR REPLACE INTO zinc_db1 (zinc_id, rotatable_bonds, purchasable)
|
|
|
|
VALUES ( 'ZINC123456798',
|
|
|
|
3,
|
|
|
|
COALESCE((SELECT purchasable from zinc_db1 WHERE zinc_id = 'ZINC123456798'), 0)
|
|
|
|
)"""
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-11-30 22:48:24 +00:00
|
|
|
# delete rows
|
|
|
|
t = ('NO', )
|
|
|
|
c.execute("DELETE FROM zinc_db1 WHERE purchasable=?", t)
|
|
|
|
print "Total number of rows deleted: ", conn.total_changes
|
|
|
|
|
|
|
|
# add column
|
|
|
|
c.execute("ALTER TABLE zinc_db1 ADD COLUMN 'keto_oxy' TEXT")
|
|
|
|
|
|
|
|
# save changes
|
|
|
|
conn.commit()
|
|
|
|
|
|
|
|
# print column names
|
|
|
|
c.execute("SELECT * FROM zinc_db1")
|
|
|
|
col_name_list = [tup[0] for tup in c.description]
|
|
|
|
print col_name_list
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# close connection
|
|
|
|
conn.close()
|