[Python] PEP249: funzione per controllare se una tabella è già presente nel DB
Pietro Zambelli
peter.zamb a gmail.com
Mar 5 Nov 2013 17:50:21 CET
Ciao a tutti,
Lavorando ad un software che si deve interfacciare sia con sqlite che
con postgresql, mi sono studiato il PEP249 [0]. Non sono però riuscito
a trovare un modo "standard" per verificare se una tabella esiste o
meno nel database... Chiaramente posso definire io una funzione tipo:
def table_exist(cursor, tabname):
"""Return True if the table exist False otherwise"""
try:
# sqlite
cursor.execute("SELECT name FROM sqlite_master"
" WHERE type='table' AND name='%s';" % tabname)
except OperationalError:
try:
# pg
cursor.execute("SELECT EXISTS(SELECT * FROM "
"information_schema.tables "
"WHERE table_name=%s)" % tabname)
except OperationalError:
return False
return True if cursor and cursor.fetchone()[0] else False
Siccome mi sembra una funzione abbastanza comune, mi sembra strano che
non sia stata definita dallo standard, mi sono perso io qualcosa?
Voi come fate di solito?
Grazie per le idee.
Buona serata
Pietro
Maggiori informazioni sulla lista
Python