我需要在MySql的int字段(可以为空)中插入一个int或None。这是我的代码:
cur = db.cursor()
contents = [None, 3]
for element in contents:
print(element)
cur.execute('insert into test.new_test (blubb) values (%s)', element)
db.commit()
当我不使用None,而是使用另一个int时,这是有效的。我只是不明白,为什么没有一个不起作用,我得到了错误
尽管我为这个问题找到了所有的解决方案,但%s无法处理任何问题...
另外,有没有一种方法可以在不使用for循环的情况下一次添加整个列表(为每个条目添加一个新行)?
发布于 2018-07-02 01:37:53
在mysql中,它应该是NULL,因此您需要将其更改为:
cur = db.cursor()
contents = ['NULL', 3]
for element in contents:
print(element)
cur.execute('insert into test.new_test (blubb) values (%s)', element)
db.commit()
编辑
要求解新的isue,可以将其更改为:
cur = db.cursor()
contents = [None, 3]
for element in contents:
print(element)
if element==None:
cur.execute('insert into test.new_test (blubb) values (NULL)')
else:
cur.execute('insert into test.new_test (blubb) values (%s)', element)
db.commit()
另一种方法是更改严格模式,就像here解释的那样
发布于 2018-07-02 01:41:54
请将NONE替换为NULL。传送到MySQL服务器的命令应如下所示:
insert into test.new_test (blubb) values (NULL)
其中,blubb是表new_test中的有效列,并且,必须允许为空值。
干杯,
https://stackoverflow.com/questions/51125524
复制相似问题