By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,173 Members | 796 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,173 IT Pros & Developers. It's quick & easy.

pysqlite - Checking the existance of a table

P: n/a
Hi all,

I am starting to play with pysqlite, and would like to know if there is
a function to determine if a table exists or not.
Thanks

Jul 19 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Simply use the internal table SQLite_Master:

select name from SQLite_Master

will return all existing tables.

Regards,
Matthias

Jul 19 '05 #2

P: n/a
| I am starting to play with pysqlite,
| and would like to know if there is a function
| to determine if a table exists or not.

rh0dium ....

One way to get at a list of table names
in an SQLite data base is to query
the sqlite_master table ....
import sys
import sqlite

this_db = sys.argv[ 1 ]

list_sql = [ "select tbl_name" ,
"from sqlite_master" ]

str_sql = '\n'.join( list_sql )

dbc = sqlite.connect( db = "%s" % this_db )

curs = dbc.cursor()

curs.execute( str_sql )

list_tables = curs.fetchall()

print '\n Table Names in SQLite DB .... %s \n' % ( this_db )

for table_name in list_tables :

print " %s " % ( table_name )

print

dbc.close()
--
Stanley C. Kitching
Human Being
Phoenix, Arizona

----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Jul 19 '05 #3

P: n/a
rh0dium wrote:
Hi all,

I am starting to play with pysqlite, and would like to know if there is
a function to determine if a table exists or not.


You can try to access the table in a try-catch block, something like:

cur.execute("select * from tablename where 1=2")

and check if it fails.

Or you can query the sqlite_master table (don't know any specification
off-hand, but it contains the schema information).

Instead of doing a select on sqlite_master, you can use "pragma
table_info", which returns information for each column in the table,
and, apparently, an empty list if the table does not exist:
cur.execute("pragma table_info(foo)")
print cur.fetchall() [(0, u'bar', u'integer', 0, None, 0)]
cur.execute("pragma table_info(foo_does_not_exist)")
print cur.fetchall()

[]

HTH,

-- Gerhard
Jul 19 '05 #4

P: n/a
Gerhard Häring wrote:
Or you can query the sqlite_master table (don't know any specification
off-hand, but it contains the schema information).


Item #9 in the FAQ (http://www.sqlite.org/faq.html#q9) shows it as:

CREATE TABLE sqlite_master (
type TEXT,
name TEXT,
tbl_name TEXT,
rootpage INTEGER,
sql TEXT
);
-Peter
Jul 19 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.