Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python向MySQL数据库添加数据_Mysql_Python 2.7_Mysql Python - Fatal编程技术网

使用Python向MySQL数据库添加数据

使用Python向MySQL数据库添加数据,mysql,python-2.7,mysql-python,Mysql,Python 2.7,Mysql Python,我正在寻找一些关于如何使用python和MySQLdb包向MySQL数据库添加数据的一般建议。 我有一个通过java创建的数据库。 现在我想用python解析一个文本文件来填充这个数据库。我遇到了不可为null的列的问题,这意味着我必须严格控制添加到数据库的顺序,这似乎不是很灵活。我认为最好是某种while语句,它在数据库的表中循环,检查不可为null的列(不自动递增),并将其与sql commit语句列表进行比较。如果在表中找到不可为null的列,并且在sql语句中找不到该列的值,则可以保存s

我正在寻找一些关于如何使用python和MySQLdb包向MySQL数据库添加数据的一般建议。 我有一个通过java创建的数据库。
现在我想用python解析一个文本文件来填充这个数据库。我遇到了不可为null的列的问题,这意味着我必须严格控制添加到数据库的顺序,这似乎不是很灵活。我认为最好是某种while语句,它在数据库的表中循环,检查不可为null的列(不自动递增),并将其与sql commit语句列表进行比较。如果在表中找到不可为null的列,并且在sql语句中找不到该列的值,则可以保存sql语句以供以后使用。否则,该语句可能会提交到数据库,并在此时收集任何自动递增的值。然后,通过循环返回sql语句列表,尝试根据先前sql提交的自动递增值填充不可为空的值。我猜这是最好的方法,但我不确定我是否在重新发明轮子——这肯定是一个很常见的问题?我只是想知道是否有人知道更好的方法来解决不可空列的问题,或者如果上述方法听起来合理,那么python代码从MySQL表中获取不可空列的列表会是什么样子,减去自动增加的列?

如果问题那么长,这意味着答案会更长:)MySQLdb已经通过显示警告消息来处理了。或者,如果所有列都必须有值,为什么不在python中为变量指定所有不可为null的列名称呢?然后,您可以设置一个contidion,使其仅在所有变量都有值的情况下执行查询,其余变量可以存储到临时列表中,直到找到/给定一个值,或者只给出一个空字符串值,以便在没有警告的情况下执行查询。