我正在尝试通过 python 程序对数千条也具有可为空字段的记录运行 INSERT 查询。我的要求是,将结果集转换为字典中的键值对,然后将值解析为列表以执行 INSERT 查询。但是,当我尝试向 int 类型字段添加 NULL 值并通过程序执行 INSERT 时,出现错误,如下所示:
Warning: (1366, "Incorrect integer value: 'NULL' for column 'category_id' at row 1") result = self._query(query)
在 MySQL 数据库中,如果我使用“NULL”或“DEFAULT”关键字对“category_id”的值执行查询,该值将按预期更新为 NULL。
有人可以帮我把我在这里缺少的东西归零吗?以下是我的代码片段:
for s in result:
temp_dict = {}
for key, value in enumerate(s):
if value is None:
temp_dict[key] = pymysql.NULL
else:
temp_dict[key] = str(value)
最佳答案
我认为 null 正在转换为字符串,因此出现错误 您可以尝试传递值 None,而不是“NULL”:
value = None
cursor.execute("INSERT INTO table (`column1`) VALUES (%s)", (value,))
关于python - 如何在Python中使用MySQL的NULL和DEFAULT关键字进行INSERT查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479137/