【发布时间】:2020-12-20 21:09:40
【问题描述】:
我也是 python 和 MySQL 的新手。我正在尝试使用 MySQL 构建一个足球数据库。在创建了两个表的数据库中,我对它们进行了基本的更新操作,一次更新一行或几行,但我希望整个过程自动化,尤其是从变量或列表进行更新。我有一张桌子,我记录了过去的比赛(到目前为止的赛季),还有一张桌子,我想根据他们迄今为止在赛季桌子上的表现自动创建实际的足球桌。
my_sq8 = "UPDATE bundesligatabella_2020_2021 SET F = %s, A = %s WHERE Team = '%s' VALUES (%s, %s,
%s)"
val = [
(9, 5, "Bayern München"),
(8, 7, "Augsburg"),
(4, 3, "Bielefeld"),
]
my_cursor.executemany(my_sq8, val)
mydb.commit()
这是我第一次尝试只有 3 支球队,我想更新特定球队的进球数,但总是出错。有人可以帮我解决这个问题吗?
在我计划的功能中,我在一个更大的列表中执行所有算术操作,并从那里针对团队进行更新。也许我错了,如果您有想法,请告诉我,更快或更好地更新值,而不是为所有统计数据和所有团队制作变量。
这是我上面代码的错误信息:
Traceback(最近一次调用最后一次): 文件 \python\database.py",第 141 行,在 my_cursor.executemany(my_sq8, val) 文件“\Python\Python39\lib\site-packages\mysql\connector\cursor.py”,第 675 行,在 executemany self.execute(操作,参数) 文件“C:\Python\Python39\lib\site-packages\mysql\connector\cursor.py”,第 558 行,在执行中 stmt = RE_PY_PARAM.sub(psub, stmt) 调用中的文件“C:\Python\Python39\lib\site-packages\mysql\connector\cursor.py”,第 85 行 引发错误。ProgrammingError( mysql.connector.errors.ProgrammingError: SQL 语句参数不足
【问题讨论】:
-
如果您在问题中包含完整的错误和回溯,我们将能够提供更好的帮助。
-
该值...您的更新 sql 的一部分不应该存在。
-
"In the feature..." 那么最好将
bundesligatabella_2020_2021重命名为bundesligatabella,并添加一个类似Fussballspielsaison的列,(或者只是匹配的日期播放)