操作mysql数据库用executemany遇到的问题

用python的MySQLdb库操作mysql数据库时,使用executemany可以批量插入数据,提高写入速度。使用executemany碰到的问题:

1. executemany和on duplicate key update一起用的时候:

错误的写法:

'INSERT INTO test (video_path,video_name) VALUES (%s,%s) ON DUPLICATE KEY UPDATE video_name =%s;'

报错:

TypeError: not all arguments converted during string formatting

正确的写法:

'INSERT INTO test (video_path,video_name) VALUES (%s,%s) ON DUPLICATE KEY UPDATE video_name =values(video_name);'

2. max_allowed_packet

报错:

_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')

因为mysql设置了写入的最大数据大小。查询大小:

mysql> show variables like "max_allowed_packet";

可以修改该值或者分批写入。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容