我想检查数据库表是否存在,但我不知道该怎么做。
我写过(例如使用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
答案 0 :(得分:1)
答案取决于您使用的rdbms产品(mysql,sqlite,ms sql等)。
您在上述查询中收到此特定错误,因为您没有将table_name变量的值括在单引号中。
在mysql中,您可以使用scanf
表来查询表是否存在。