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 件のコメント:
コメントを投稿