【发布时间】:2018-10-14 04:56:45
【问题描述】:
我创建了一个具有 int 类型的默认 NULL 字段的表。我需要使用参数查询插入数据,但我无法通过变量将 NULL 传递到 int 字段。
import sys
import os
import datetime
import logging
import rds_config
import pymysql
conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5, sql_mode="")
def mk_int (value):
if value in (None, "",''):
return 'NULL'
else:
return int(value)
blankStrOfInt = ''
insertSQL = "INSERT INTO `patientinsight`.`Employee`(`id`,`LastName`,`FirstName`, `DepartmentCode`) VALUES (6, 'Doe', 'John', %s)"
conn.cursor().execute(insertSQL,mk_int(blankStrOfInt))
conn.commit()
我尝试了以下作为 mk_int 的返回
- 返回 NULL
- 返回 'NULL'
- 返回无
- 返回''
但上述允许在字段中插入 NULL。
- 当我从 mk_int 返回 'NULL' 时,它会给出类型不匹配的警告并插入 0 而不是 NULL。
【问题讨论】: