我的模型相当复杂,我试图从现有的存储过程中获取逻辑并将它们转换为SQLAlchemy(出于可移植性的原因)。在
然而,我正在努力处理未提交的数据。在
我有user
表:1d,name
我有status
表:id,name
我有user_statuses
表:id,user_id,status_id,from_dt,to_dt
现在,我需要在单个事务中填充所有这些表,否则将失败。问题是:
user = User(name = 'Test')
status = Status(name = 'Active')
db.session.add(user)
db.session.add(status)
# Oooopa! This is where it fails
user_session = UserStatuses(user_id=user.id, status_id=status.id, datetime.utcnow(), datetime(9999,01,01,00,00,00))
# both user.id and status.id = None as it's uncommited!
本质上,我需要能够访问表序列而不需要显式SQL。为什么?便于携带。目前我使用PGSQL,可以执行以下操作:
^{pr2}$将引擎改为MySQL&BANG!应用程序损坏。在
有什么办法吗?请记住,这可能是一个非常高的事务处理应用程序,成千上万的用户一次访问它
如果在添加模型对象后但在提交之前刷新会话:
然后对象}。在
add()
-ed将更新其序列列(id
),这样user.id
,status.id
将不再是{找到答案了-不知道为什么我以前没看到这个!在
Sequence对象还可以像SQL表达式一样独立执行,其效果是调用其“next value”函数:
相关问题 更多 >
编程相关推荐