📜  如何在 SQLAlchemy 中插入 NULL 值?(1)

📅  最后修改于: 2023-12-03 15:24:23.153000             🧑  作者: Mango

如何在 SQLAlchemy 中插入 NULL 值?

在 SQLAlchemy 中,可以通过设置某个字段的值为 None 来插入 NULL 值。

假设我们有以下的数据库表:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Person(Base):
    __tablename__ = 'persons'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

要插入一个 NULL 值,通常需要设置某个字段的值为 None,比如:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///:memory:', echo=True)
Session = sessionmaker(bind=engine)
session = Session()

person = Person(name='John', age=None)
session.add(person)
session.commit()

上述代码中,我们创建了一个 Person 实例,将 age 字段的值设置为 None,然后将该实例添加到数据库中,并提交事务。

在这个例子中,我们成功地插入了一个 NULL 值。

需要注意的是,在查询时,我们需要使用 is Noneis not None 来过滤 NULL 值,例如:

query = session.query(Person).filter(Person.age.is_(None))

在上述代码中,我们使用 is_ 方法来判断 age 字段是否为 NULL

这就是在 SQLAlchemy 中插入 NULL 值的方法。