小编jgr*_*ger的帖子

如何使用psycopg2将int列数据设置为null

我有这个代码,我正在尝试将数据行值更新为Null,以测试它是否可以在Selenium Webdriver的前端重新选择.当我针对数据库手动运行sql时它工作正常但是当我尝试参数替换Null时我得到的int列

这是堆栈中有意义的部分

cursor.execute(query, (REASONS_CREATED[reason_created], order_id))
DataError: invalid input syntax for integer: "Null"
LINE 4:     reason_created_id = E'Null'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

def update_reason_created_on_order(order_id, reason_created, environment='test'):
    '''
    Updates an order's reason created.
    '''
    sql_directory = find_path_to_sql_directory()
    with open(os.path.join(sql_directory, 'update_reason_created_on_order')) as sql:
        cursor = setup_database_cursor(environment)
        query = sql.read()
        try:
            cursor.execute(query, (REASONS_CREATED[reason_created], order_id))
        except:
            raise
Run Code Online (Sandbox Code Playgroud)

这是我的REASONS_CREATED字典查找的Null条目

REASONS_CREATED = {'NULL': 'Null'}
Run Code Online (Sandbox Code Playgroud)

这是我在外部文件中的sql

UPDATE
    order
SET
    reason_created_id = %s
WHERE
    order_id = %s;
COMMIT;
Run Code Online (Sandbox Code Playgroud)

据我所知,psycopg2进行自动类型转换,并认识到这个reason_created_id是int类型.有谁知道如何将其设置为null?此外,该列可以为空.

python psycopg2 python-2.7 selenium-webdriver

2
推荐指数
1
解决办法
3637
查看次数

标签 统计

psycopg2 ×1

python ×1

python-2.7 ×1

selenium-webdriver ×1