使用SqlAchemy创建表时未创建序列

2024-09-27 09:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用sequence创建一个带有id列的表,但失败了

以下是我的代码片段:

from sqlalchemy import (TEXT, Boolean, Column, Date, DateTime,
                        ForeignKey, Integer, Sequence, SmallInteger, String,
                        UniqueConstraint)

class group(Base):
    __tablename__ = 'group'

    id = Column(SmallInteger, Sequence('group_id'), primary_key=True)
    title = Column(String, unique=True, nullable=False)
    sorting = Column(SmallInteger, nullable=False, index=True)
    active = Column(Boolean, nullable=False, index=True, default=True)

生成的表如下所示,但没有顺序:

CREATE TABLE group (
    id SMALLINT NOT NULL,
    title VARCHAR NOT NULL,
    sorting SMALLINT NOT NULL,
    active BOOLEAN NOT NULL,
    PRIMARY KEY (id),
    UNIQUE (title)
)
CREATE INDEX ix_group_sorting ON group (sorting)
CREATE INDEX ix_group_active ON group (active)

因此,如果我尝试向表中插入数据,则会显示错误消息:

sqlalchemy.exc.InternalError: (psycopg2.errors.InternalError_) missing "id" primary key column

如何使用Sequence成功创建包含列的表

sqlalchemy版本:1.0.14

python版本:3.6.6

提前谢谢


Tags: idfalsetruesqlalchemytitlecreategroupnot

热门问题