Python SQLite:在数据库中插入0整数变为NULL

时间:2014-08-05 12:43:24

标签: python sql python-2.7 sqlite

我有一些Python代码将整数值插入数据库,如下所示:

if value: #if it's not None
    self._conn.execute(
    '''UPDATE table_name SET value_holder = ? WHERE
        key_one = ? AND key_two = ? and key_three = ?''',
        [value, key_one, key_two, key_three])

如果我运行该查询,则表将包含空字段,或者每当值为0时为NULL字段。但是,如果我将查询设置更改为下面,则字段将包含0而不是NULL。

if value==0:
    self._conn.execute(
    '''UPDATE table_name SET value_holder = ? WHERE
        key_one = ? AND key_two = ? and key_three = ?''',
        [0, key_one, key_two, key_three])

elif value: #if it's not None
    self._conn.execute(
    '''UPDATE table_name SET value_holder = ? WHERE
        key_one = ? AND key_two = ? and key_three = ?''',
        [value, key_one, key_two, key_three])

如何插入0 vs插入值(当值== 0时)导致数据库中的值不同?

SQLite版本3.3.6。

1 个答案:

答案 0 :(得分:1)

正如用户间的回答: "如果值为0,则值不为真。"

就我而言,值被评估为false,并且数据库中的默认空值保持不变。

用户netcoder发布的支持文档: https://docs.python.org/2/library/stdtypes.html#truth-value-testing