我试图将信息从python数据帧传递到python for循环中,以更新microsoftsqlserver中的行,从而更新表
我有一个熊猫数据帧值
row['id']
哪个应该等于我的SQL update语句中的where子句
where id = ?
我的full语句不传递where子句的参数,也不从值中排除最后一个参数,但在包含它时就不行了
这是我的完整代码,不包括日期:
df = DataFrame.from_records(data)
for index,row in df.iterrows():
cursor.execute("UPDATE dbo.tickets SET ([updated_at],[type],[status],[group_id],[assignee_id])
values(?,?,?,?,?) where id = ?", (row['updated_at'],row['type'],row['status'],row['group_id'],row['assignee_id'],row['id']))
cursor.commit()
但是我在执行代码时收到了这个错误:
[1241 rows x 36 columns] Traceback (most recent call last): File "solved.py", line 54, in cursor.execute("UPDATE dbo.tickets ([updated_at],[type],[status],[group_id],[assignee_id]) values(?,?,?,?,?) where id = ?", (row['updated_at'],row['type'],row['status'],row['group_id'],row['assignee_id'],row['id'])) pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near '('. (102) (SQLExecDirectW); [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Statement(s) could not be prepared. (8180)")
有人能解释一下我可能做错了什么吗?谢谢你
更新:
实际上,我插入了错误的更新命令,并用以下方法解决了此问题:
cursor.execute("UPDATE dbo.tickets SET [updated_at] = ?,[type] = ?,[status] = ?,[group_id] = ?,[assignee_id] = ? where [id] = (?)", (row['updated_at'],row['type'],row['status'],row['group_id'],row['assignee_id'],row['id']))
目前没有回答
相关问题 更多 >
编程相关推荐