停止/删除SQLAlchemy中默认插入NULL

时间:2019-07-02 05:46:38

标签: python model sqlalchemy

我在SQLAlchemy中有以下几列:

name = Column(String(36))
uuid= Column(String(36))

样本插入查询:

new_request = Project(name = names)
db_session.add(new_request)
db_session.commit()

我已经为数据库中的uuid设置了默认值。

但是SQLAlchemy在查询中设置uuid = None,因此不会生成默认值。

如何避免默认的空值插入。

1 个答案:

答案 0 :(得分:2)

一种可能的方法是使用内置的UUIDType

your_column = Column(UUIDType(binary=False), primary_key=True)

也可以通过default=...类型的server_default=...Column参数接受定制的 uuid 生成器。

使用server_default=...,您可以指定特定数据库引擎(例如PostgreSQL的gen_random_uuid())特有的 UUID 生成器函数。