检查python中是否存在sql表

2024-06-01 10:17:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为投票系统制作一个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)")

Tags: 文件方法text用户info机器数据库应用程序
2条回答

我想这里有两个选择。首先,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,则表存在,否则不存在。

相关问题 更多 >