Как вставить значения "NULL" в базу данных PostgreSQL с помощью Python?
есть ли хорошая практика для входа NULL
значения ключей для базы данных PostgreSQL, когда переменная None
в Python?
запуск этого запроса:
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))
результаты в a TypeError
исключения, когда user_id
is None
.
как может a NULL
вставляется в базу данных при значении None
, С помощью psycopg2
водителя?
1 ответов
для вставки нулевых значений в базу данных у вас есть два варианта:
- опустите это поле из инструкции INSERT или
- использовать
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))