操作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";

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

你可能感兴趣的:(操作mysql数据库用executemany遇到的问题)