mysql中排序语句([开发笔记]MySQL & Python经验两则)
导读:在最近的开发中,遇到两个比较奇怪的问题,把解决办法写在这里:...
在最近的开发中 ,遇到两个比较奇怪的问题 ,把解决办法写在这里:
1.使用Python操作MySQL数据库时 ,如果插入的数据条目很多 ,一条条地执行insert…into语句可能会导致connection error ,正确的办法是使用executemany(这有点类似JDBC中的batch操作):
T = ((’s11′, 1), (’s21′, 2))
cursor = conn.cursor()
cursor.executemany("insert into table_a (str_column, int_column) values (%s, %d)", T)但是 ,执行这段程序却会报告错误:
Type Error, expect int……开始百思不得其解 ,上网搜索才发现 ,executemany执行的sql语句中 ,所有变量都必须写作%s的形式T = ((’s11′, 1), (’s21′, 2))
cursor = conn.cursor()
cursor.executemany("insert into table_a (str_column, int_column) values (%s, %s)", T)测试通过
2.两台环境一样的机器 ,一台使用MySQL 4.1.18 ,另一台使用MySQL 4.1.21 ,在4.1.18上能够正常运行的SQL语句,在4.1.21上报错:
ERROR 1030 (HY000): Got error 28 from storage engine检查两台机器的storage engine ,未发现问题;上网搜索才发现 ,出现此问题的原因是,临时空间不够 ,无法执行此SQL语句 。
解决的办法是 ,清空/tmp目录 ,或者修改my.cnf中的tmpdir参数 ,指向具有足够空间的目录 ,即可 。
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时 ,禁止复制 、盗用 、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!