求SQLAlchemy中Column('id', Integer, Identity())的关键字参数等价写法
问题解答
你不能用
default=Identity(),因为default是设置客户端默认值的参数,而Identity()是服务器端生成的标识列规则,属于服务器端默认类型,所以会触发报错。正确的关键字参数等价写法有两种:
- 使用
server_default参数:Column(name='id', type_=Integer, server_default=Identity()) - 使用
identity参数(SQLAlchemy 1.4及以上版本支持,写法更直观):Column(name='id', type_=Integer, identity=Identity())
- 使用
不需要使用
DefaultClause或DefaultGenerator,Identity()本身就是适配服务器端标识列的专用对象,直接通过上述两个参数传递即可。
内容的提问来源于stack exchange,提问作者A T
相关产品推荐
相关产品推荐

