如何使用Python检查数据库表是否存在?

时间:2016-02-18 06:36:03

标签: python sqlite

我想检查数据库表是否存在,但我不知道该怎么做。

我写过(例如使用SQLite,虽然我主要使用MySQL),

import sqlite3
table_name = "some_table"
connection = sqlite3.connect(db)
cursor = connection.cursor()
table_check = "SELECT name FROM sqlite_master WHERE type='table' AND name={};".format(table_name)
if not cursor.execute(table_check).fetchone():  # if the table doesn't exist
# OR if cursor.execute(table_check).fetchone() == "":
    create_table()
else:
    update_table()

但是,发生了错误,我无法继续。

  

sqlite3.OperationalError:没有这样的列:some_table

我在这里阅读了几个Q& A,但我无法得到这些。 任何建议都可以帮助我。 谢谢。

Python 3.5.1

1 个答案:

答案 0 :(得分:1)

答案取决于您使用的rdbms产品(mysql,sqlite,ms sql等)。

您在上述查询中收到此特定错误,因为您没有将table_name变量的值括在单引号中。

在mysql中,您可以使用scanf表来查询表是否存在。