SQLAlchemy+SQLiteでAutoIncrementを使うときは、単にPrimaryKeyに値を入れずにcommitすれば良い。
from sqlalchemy import Column, Integer, String, Table, create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base engine = create_engine('sqlite:///test.db', echo=True) Base = declarative_base(bind=engine) class MyClass(Base): __tablename__ = 'my_table' id = Column(Integer, primary_key=True) type = Column(String(50)) alt = Column("some_alt", Integer) if __name__ == '__main__': Session = sessionmaker(bind=engine) session = Session() Base.metadata.create_all(engine) myclass = MyClass() myclass.type = "taiga" myclass.alt = 10 session.add(myclass) session.commit()上のプログラムではid(primary key)に何の値も入れずにcommitしているが、フレームワーク側でprimary keyをincrementしてくれる。
0 件のコメント:
コメントを投稿