📅  最后修改于: 2023-12-03 15:24:23.153000             🧑  作者: Mango
在 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 None
或 is not None
来过滤 NULL
值,例如:
query = session.query(Person).filter(Person.age.is_(None))
在上述代码中,我们使用 is_
方法来判断 age
字段是否为 NULL
。
这就是在 SQLAlchemy 中插入 NULL
值的方法。