使用SqlAchemy

时间:2019-12-19 06:55:15

标签: python sqlalchemy

我尝试使用序列创建一个带有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

谢谢。

0 个答案:

没有答案