检查python

时间:2016-11-17 01:23:20

标签: python sqlite

我正在为投票系统制作一个python应用程序。我正在使用sqlite3创建一个本地存储在用户计算机上的数据库。

我需要一种检查表是否存在的方法,因为在运行应用程序时需要在每个用户的数据库文件中创建表,但是如果表存在且我只是运行应用程序创建表的语句会因为表已经存在而运行错误。

这是一些简化的示例代码

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)")

2 个答案:

答案 0 :(得分:2)

我认为这里有两种选择。首先,SQLite有一个语句,只有在它不存在时才会创建表:

CREATE TABLE IF NOT EXISTS info (PRIMARY KEY id int, username text, password text)

但是如果你想要一个更通用的数据库通用方法来处理它,你可以简单地执行一个常规CREATE TABLE语句,然后在Python中处理异常。

答案 1 :(得分:1)

您可以执行此SQL:

select count(*) from sqlite_master where type='table' and name='table name'

如果你得到1,则表存在,否则不存在。