항상 어설 션합니까? 즉, 세션에 새 객체를 추가 할 때 SQLAlchemy가 순서를 저장합니까 (INSERT 쿼리 생성시)?SQLAlchemy는 세션에 개체를 추가 할 때 순서를 저장합니까?
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.session import sessionmaker
from sqlalchemy.engine import create_engine
from sqlalchemy.types import Integer
from sqlalchemy.schema import Column
engine = create_engine('sqlite://')
Base = declarative_base(engine)
Session = sessionmaker(bind=engine)
session = Session()
class Entity(Base):
__tablename__ = 'entity'
id = Column(Integer(), primary_key=True)
Entity.__table__.create(checkfirst=True)
first = Entity()
session.add(first)
second = Entity()
session.add(second)
session.commit()
assert second.id > first.id
print(first.id, second.id)
없음, 프로덕션 환경에서는 postgresql을 사용하고 sqlite는 테스트 용입니다.
나는 이것을 (많은 장소에서'dict'와'set's) 그렇게하는 원인이되는 sqlalchemy에서 코드를 찾을 수 없으며 또한 매력적인 반례 예를 만들 수 없다 (시퀀스에서 비 단조의 부족), +1 +1 – SingleNegationElimination