Postgresql
如何在 SQLAlchemy 中設置自動增量值?
這是我的程式碼:
class csvimportt(Base): __tablename__ = 'csvimportt' #id = Column(INTEGER, primary_key=True, autoincrement=True) aid = Column(INTEGER(unsigned=True, zerofill=True), Sequence('article_aid_seq', start=1001, increment=1), primary_key=True)
我想設置一個從 1000 開始的自動增量值。我該怎麼做?
Postgresql 10 有一個新的 IDENTITY 特性,它取代了 SERIAL 的使用。尚未提供對 IDENTITY 呈現的內置支持,但是可以使用以下編譯掛鉤將出現的 SERIAL 替換為 IDENTITY:
from sqlalchemy.schema import CreateColumn from sqlalchemy.ext.compiler import compiles @compiles(CreateColumn, 'postgresql') def use_identity(element, compiler, **kw): text = compiler.visit_create_column(element, **kw) text = text.replace("SERIAL", "INT GENERATED BY DEFAULT AS IDENTITY") return text
從 1.4 版開始,SQLAlechemy 有
Identity
列。從文件複製的範例:
from sqlalchemy import Table, Column, MetaData, Integer, Computed metadata = MetaData() data = Table( "data", metadata, Column( 'id', Integer, Identity(start=42, cycle=True), primary_key=True ), Column('data', String) )