小编典典

如何使用Python将NULL值插入PostgreSQL数据库?

python

在Python中NULL使用变量时,是否存在将键值输入PostgreSQL数据库的好习惯None

运行此查询:

mycursor.execute('INSERT INTO products (user_id, city_id, product_id, quantity, price) VALUES (%i, %i, %i, %i, %f)' %(user_id, city_id, product_id, quantity, price))

TypeErroruser_id会导致aa异常None

使用驱动程序如何将aNULL插入到数据库中?None``psycopg2


阅读 212

收藏
2021-01-20

共1个答案

小编典典

要将空值插入数据库,您有两个选择:

  1. 从您的INSERT语句中忽略该字段,或者
  2. 采用 None

另外:为了防止SQL注入,您不应在查询中使用普通的字符串插值。

您应该将两(2)个参数传递给execute(),例如:

mycursor.execute("""INSERT INTO products 
                    (city_id, product_id, quantity, price) 
                    VALUES (%s, %s, %s, %s)""", 
                 (city_id, product_id, quantity, price))

备选方案2:

user_id = None
mycursor.execute("""INSERT INTO products 
                    (user_id, city_id, product_id, quantity, price) 
                    VALUES (%s, %s, %s, %s, %s)""", 
                 (user_id, city_id, product_id, quantity, price))
2021-01-20