我知道这是一个老问题,但我最近不得不弄清楚这一点,并且没有一个可用的答案是我所需要的。我发现的解决方案依赖Sequence
于SQLAlchemy。无论出于何种原因,当我在上面提到Sequence
的构造函数中调用构造函数时,我无法让它工作。Column
作为说明,我使用的是 PostgreSQL。
对于您的回答,我会这样说:
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Sequence, Column, Integer
import os
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Sequence, Integer, create_engine
Base = declarative_base()
def connection():
engine = create_engine(f"postgresql://postgres:{os.getenv('PGPASSWORD')}@localhost:{os.getenv('PGPORT')}/test")
return engine
engine = connection()
class Article(Base):
__tablename__ = 'article'
seq = Sequence('article_aid_seq', start=1001)
aid = Column('aid', Integer, seq, server_default=seq.next_value(), primary_key=True)
Base.metadata.create_all(engine)
然后可以在 PostgreSQL 中调用:
insert into article (aid) values (DEFAULT);
select * from article;
aid
------
1001
(1 row)
希望这对某人有所帮助,因为我花了一段时间