pymysql |将NULL插入nulable int字段

时间:2018-05-03 19:20:39

标签: mysql null pymysql

我创建了一个具有int类型的默认NULL字段的表。我需要使用参数查询插入数据,但我无法通过变量将NULL传递给int字段。

module.exports = new GraphQLSchema({ query: RootQuery });

我尝试了以下作为mk_int

的回复
  • return NULL
  • 返回'NULL'
  • return None
  • return''

但上述内容允许在字段中插入NULL。

  • 当我从mk_int返回'NULL'时,它会发出类型不匹配的警告,并插入0而不是NULL。

1 个答案:

答案 0 :(得分:0)

我建议使用Python None作为绑定值。

我认为这可以通过在当前代码中返回None代替'NULL'来实现:

if value in (None, "",''):
    return None

我无法解释为什么那不起作用。但我不是Python专家。

作为调试测试,我尝试使用None代替对函数的调用,在这里:

  conn.cursor().execute(insertSQL,None)

修改

测试返回SQL错误1604 ... syntax to use near '%s'

这表明发送给MySQL的SQL文本包含%s占位符。

这意味着execute没有对值进行绑定。

可能是因为它没有看到要绑定的值列表,它看到了None并且没有做任何事情。

让我们尝试执行值的列表。然后执行将看到给它某事。我们给了它一个列表,而不只是None。列表中的第一项是None

让我们尝试添加parens:

  conn.cursor().execute(insertSQL, ( None ) )
                                   ^      ^

如果我们开始工作,那么我们可以测试用函数调用替换None(包含在parens中)。