如何使用 SQLAlchemy 创建一个不是主键的标识列?

Posted

技术标签:

【中文标题】如何使用 SQLAlchemy 创建一个不是主键的标识列?【英文标题】:How to create an identity column not being a primary key with SQLAlchemy? 【发布时间】:2016-12-04 13:44:40 【问题描述】:

如何在 SQLAlchemy 中创建一个标识列,自动递增而不是主键?

我正在使用 Postgres。

谢谢,

亚恩

【问题讨论】:

哪个数据库? 我正在使用 postgreSql 你确定 postgresql 支持 不是 主要的自动增量列吗?例如,我知道在 mysql 中这是不可能 postgresql 支持序列,不需要链接到主键 【参考方案1】:

这样的事情应该可以工作。

table_sequence = Sequence('table_id_seq', start=1)

class MyTable(Base):
    __tablename__ = 'mytable'

    id = Column(Integer, table_sequence, server_default=table_sequence.next_value())

【讨论】:

创建序列时出现此错误:TypeError: object() 不带参数

以上是关于如何使用 SQLAlchemy 创建一个不是主键的标识列?的主要内容,如果未能解决你的问题,请参考以下文章

来自唯一和主外键的 SQLAlchemy 主键

如何在 SQLAlchemy 模型中使用 SQLAlchemy Utils

SQLAlchemy 不仅通过主键从身份映射中获取项目

SQLAlchemy(三):外键连表关系

MySQL - 如何创建一个新表,该表是两个现有表的主键的连接

使用 sqlalchemy 在刷新/提交时自动散列主键并使其持久化