Re: pysqlite - Checking the existance of a table
On 2005-06-17, rh0dium [EMAIL PROTECTED] wrote: 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. sqlite_master has already been mentioned, so I'll point out some useful pragmas (under Pragmas to query the database schema): http://sqlite.org/pragma.html Dave Cook -- http://mail.python.org/mailman/listinfo/python-list
Re: pysqlite - Checking the existance of a table
| 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 '\nTable 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 = -- http://mail.python.org/mailman/listinfo/python-list
Re: pysqlite - Checking the existance of a table
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 -- http://mail.python.org/mailman/listinfo/python-list
Re: pysqlite - Checking the existance of a table
Gerhard Hring 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 -- http://mail.python.org/mailman/listinfo/python-list
pysqlite - Checking the existance of a table
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 -- http://mail.python.org/mailman/listinfo/python-list
Re: pysqlite - Checking the existance of a table
Simply use the internal table SQLite_Master: select name from SQLite_Master will return all existing tables. Regards, Matthias -- http://mail.python.org/mailman/listinfo/python-list