我在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,因此不会生成默认值。
如何避免默认的空值插入。
答案 0 :(得分:2)
一种可能的方法是使用内置的UUIDType
:
your_column = Column(UUIDType(binary=False), primary_key=True)
也可以通过default=...
类型的server_default=...
和Column
参数接受定制的 uuid 生成器。
使用server_default=...
,您可以指定特定数据库引擎(例如PostgreSQL的gen_random_uuid()
)特有的 UUID 生成器函数。