como - ¿Cómo insertar valores ''NULL'' en la base de datos PostgreSQL usando Python?
como cargar un archivo csv en python (1)
Para insertar valores nulos en la base de datos tiene dos opciones:
- omita ese campo de su declaración INSERT, o
- utilizar
None
Además: para protegerse contra la inyección de SQL, no debe utilizar la interpolación de cadena normal para sus consultas.
Debes pasar dos (2) argumentos a execute()
, por ejemplo:
mycursor.execute("""INSERT INTO products
(city_id, product_id, quantity, price)
VALUES (%s, %s, %s, %s)""",
(city_id, product_id, quantity, price))
Alternativa # 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))
¿Existe una buena práctica para ingresar valores de clave NULL
en una base de datos PostgreSQL cuando una variable es None
en Python?
Ejecutando esta consulta:
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))
da como resultado una excepción TypeError
cuando user_id
es None
.
¿Cómo se puede insertar un NULL
en la base de datos cuando un valor es None
, usando el controlador psycopg2
?