检查python中的sql表是否存在

Shn*_*per 1 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)")
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 5

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

CREATE TABLE IF NOT EXISTS info (PRIMARY KEY id int, username text, password text)
Run Code Online (Sandbox Code Playgroud)

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