【发布时间】:2018-10-04 12:35:08
【问题描述】:
我基本上使用以下代码来删除使用 Python 3.6 和 PyMySQL 以及 MySQL 5.7 数据库的现有表:
connection = pymysql.connect(
host=host,
user=username,
password=password,
db=database,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
table_name = "video_playback_statistics"
sql = "DROP TABLE IF EXISTS %s"
params = (table_name,)
with connection.cursor() as cursor:
cursor.execute(sql, params)
我收到以下错误:
pymysql.err.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的 ''video_playback_statistics'' 附近使用的正确语法"
我已经成功地执行了其他更复杂的带有更多参数的 SQL 语句,但是这个简单的语句不起作用。
当我运行没有参数化的 SQL 命令时,它工作正常:
cursor.execute('DROP TABLE IF EXISTS video_playback_statistics')
我查看了以下问题:
但这些类型的查询似乎工作正常。
我也看过这个:
但是这里表名是直接写入字符串的。
【问题讨论】: