首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法在mysql int字段中插入None

无法在mysql int字段中插入None
EN

Stack Overflow用户
提问于 2018-07-02 01:33:50
回答 2查看 629关注 0票数 0

我需要在MySql的int字段(可以为空)中插入一个int或None。这是我的代码:

代码语言:javascript
复制
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循环的情况下一次添加整个列表(为每个条目添加一个新行)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-02 01:37:53

在mysql中,它应该是NULL,因此您需要将其更改为:

代码语言:javascript
复制
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,可以将其更改为:

代码语言:javascript
复制
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解释的那样

票数 2
EN

Stack Overflow用户

发布于 2018-07-02 01:41:54

请将NONE替换为NULL。传送到MySQL服务器的命令应如下所示:

代码语言:javascript
复制
insert into test.new_test (blubb) values (NULL)

其中,blubb是表new_test中的有效列,并且,必须允许为空值。

干杯,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51125524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档