¿Cómo insertar valor NULL en SQLAlchemy?

En este artículo, veremos cómo insertar valores NULL en una base de datos PostgreSQL usando SQLAlchemy en Python.

Primero con fines de demostración, creemos una tabla de muestra usando SQLAlchemy como se muestra a continuación

Creando una tabla usando SQLAlchmey en PostgreSQL:

  • Importe las funciones necesarias del paquete SQLAlchemy.
  • Establezca una conexión con la base de datos PostgreSQL usando la función create_engine() como se muestra a continuación
  • Cree una tabla llamada book_publisher con las columnas Publisher_id, Publisher_name y Publisher_estd
  • Inserte un registro en las tablas usando la función insert() y valores() como se muestra.

Sintaxis: motor = crear_motor(dialecto+controlador://nombre de usuario:contraseña@host:puerto/nombre_de_la_base_de_datos)

Python3

# import necessary packages
from sqlalchemy import create_engine,/
MetaData, Table, Column, Integer, String
 
# establish connection
engine = create_engine(
    "database+dialect://username:password@hostname:port/database_name")
 
# store engine objects
meta = MetaData()
 
# create a table
book_publisher = Table(
    'book_publisher', meta,
    Column('publisherId', Integer, primary_key=True),
    Column('publisherName', String),
    Column('publisherEstd', Integer),
)
 
# use create_all() function to create a
# table using objects stored in meta.
meta.create_all(engine)
 
# insert values
statement1 = book_publisher.insert().values(
    publisherId=1, publisherName="Oxford", publisherEstd=1900)
statement2 = book_publisher.insert().values(
    publisherId=2, publisherName='Stanford', publisherEstd=1910)
statement3 = book_publisher.insert().values(
    publisherId=3, publisherName="MIT", publisherEstd=1920)
statement4 = book_publisher.insert().values(
    publisherId=4, publisherName="Springer", publisherEstd=1930)
statement5 = book_publisher.insert().values(
    publisherId=5, publisherName="Packt", publisherEstd=1940)
 
engine.execute(statement1)
engine.execute(statement2)
engine.execute(statement3)
engine.execute(statement4)
engine.execute(statement5)

Producción:

Tabla de muestra usando SQLAlchemy

Insertar valores NULL usando SQLAlchemy en PostgreSQL

Usemos la misma función insert() y values() para insertar valores NULL. En python, el equivalente NULL es Ninguno. Por lo tanto, especifique Ninguno para los registros que desea insertar como valores NULL, como se muestra a continuación.

Python3

# specify null values as NONE
statement6 = book_publisher.insert().values(
    publisherId=6, publisherName=None, publisherEstd=None)
 
# insert the null values
engine.execute(statement6)

Producción:

Puede ver un nuevo registro insertado en la fila 6.

No se insertaron valores en una tabla

Obtener los resultados anteriores usando Python Shell

Aquí vamos a buscar los resultados usando los métodos fetchall().

Python3

# Get the `book_publisher` table from the
# Metadata object
import sqlalchemy
 
book_publisher = meta.tables['book_publisher']
 
# SQLAlchemy Query to fetch all records
query = sqlalchemy.select([
    book_publisher])
 
 
# Fetch all the records
result = engine.execute(query).fetchall()
 
# View the records
for record in result:
    print("\n", record)

Producción:

La salida de registros que tienen valores Ninguno

Publicación traducida automáticamente

Artículo escrito por jssuriyakumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *