mysqldb
を使用してデータベース内の多くのレコードを更新しようとしています。executemanyを使用してpandasデータフレームからmysqlデータベースを更新する
cur.executemany("""UPDATE {} set {} =%s Where id = %s """.format(table, ' = %s, '.join(col)),updates.values.tolist())
私はそのエラーメッセージは次のコードを使用して有用ではなかったように、私は、実際のSQL UPDATE文を出力しようとした
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...
...エラーメッセージが表示されます。
cur.execute('set profiling = 1')
try:
cur.executemany("""UPDATE {} set {} =%s Where id = %s """.format(table, ' = %s, '.join(col)),updates.values.tolist())
except Exception:
cur.execute('show profiles')
for row in cur:
print(row)
を
そのprintステートメントは、更新ステートメントを300文字で切り取っているようです。私は制限についてのドキュメントで何も見つけることができませんので、これは印刷の文が制限されているのか、それともmysqldbですか?
完全なステートメントを表示するために、mysqldb
ではなく、python
という更新ステートメントを生成する方法はありますか?