postgresql postgres数据库上的GENERATED ALWAYS AS IDENTITY的SQLAchemy语法

9wbgstp7  于 2023-02-15  发布在  PostgreSQL
关注(0)|答案(1)|浏览(292)

如何将下表表示为SQLA模型?

CREATE TABLE x
(
    x_id    integer GENERATED ALWAYS AS IDENTITY,
    x_name  text unique
);

我认为如果我使用以下命令创建一个列:

id = Column(Integer, nullable=False, primary_key=True)

生成的SQL将不使用GENERATED ALWAYS AS IDENTITY,而是使用SERIAL
为了使用GENERATED ALWAYS AS IDENTITY语法,完成以下步骤是我不确定的:

class X(Base):
    __tablename__ = "x"
    x_id = Column( <something here> ) 
    x_name = Column(Text, unique = True)
mwkjh3gx

mwkjh3gx1#

可以在列定义中使用Identity

class X(Base):
    __tablename__ = "x"
    x_id = Column(Integer, Identity(always=True), primary_key=True)
    x_name = Column(Text, unique=True)

**PS.**如果您设置了primary_key=True,则无需设置nullable=False

相关问题