zoukankan      html  css  js  c++  java
  • [开发笔记]MySQL & Python经验两则

    [开发笔记]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参数,指向具有足够空间的目录,即可。

  • 相关阅读:
    Linux基础
    杂谈
    MySQL基础
    Effective Java-第4章
    Effective Java-第三章
    Effective Java-第二章
    mybatis
    mapper.xml文件
    Mybatis
    mybatis-config.xml文件详解
  • 原文地址:https://www.cnblogs.com/lexus/p/2725727.html
Copyright © 2011-2022 走看看