检查python中是否存在sql表
问题描述:
我正在为投票系统制作python应用程序。我正在使用sqlite3
创建存储在用户机器上的本地数据库。检查python中是否存在sql表
我需要一种方法来检查一个表是否存在,因为这些表需要在每个用户的数据库文件上创建时运行应用程序,但如果应用程序在表存在时运行,并且我只是创建一个语句表将会运行一个错误,因为该表已经存在。
下面是一些简单的示例代码
conn = sqlite3.connect('firefight')
c = conn.cursor()
if table 'info' exists:
#do nothing
else:
c.execute("CREATE TABLE info(PRIMARY KEY id int, username text, password text)")
答
我觉得这里有两种选择。首先,SQLite的有这将创建表只有当它不存在一种说法:
CREATE TABLE IF NOT EXISTS info (PRIMARY KEY id int, username text, password text)
但是,如果你想要一个更数据库通用的方法来处理这个问题,你可以简单地执行定期CREATE TABLE
语句,然后处理Python中的异常。
答
您可以执行此SQL:
select count(*) from sqlite_master where type='table' and name='table name'
,如果你得到1,表中存在,否则不存在。
+0
我得到'sqlite3.OperationalError:没有这样的表:my_table' – NinjaFart
这也可以用于INSERT INTO? – Shniper
您可以使用唯一约束停止插入,但这是另一个主题。 –