SQLAlchemy 2.0中如何使用ORM定义序列名称?
SQLAlchemy 2.0 ORM中定义序列名称的方法
先回顾基础写法的对比:
- Core定义普通主键列:
id = Column(Integer, primary_key=True)
- SQLAlchemy 2.0 ORM的对应写法:
id: Mapped[int] = mapped_column(primary_key=True)
- Core中指定序列名称的写法:
id = Column(Integer, Sequence('sequence_name'), primary_key=True)
在ORM里要实现同样的效果,直接把Sequence对象传给mapped_column即可,写法如下:
from sqlalchemy import Sequence from sqlalchemy.orm import Mapped, mapped_column id: Mapped[int] = mapped_column(Sequence('sequence_name'), primary_key=True)
补充说明
mapped_column是对Core层Column的封装,Core中Column支持的绝大多数参数(包括序列配置)都可以直接传递给mapped_column使用。
关于相关文档,SQLAlchemy官方文档中:
mapped_column的章节会明确它与CoreColumn的参数兼容性;- "Sequences"主题章节会同时覆盖Core和ORM两种场景下的序列配置方法。
内容的提问来源于stack exchange,提问作者glv
相关产品推荐
相关产品推荐

