我想在不同的会话中从两个存在表创建一个表。
例如:
User {uid, fname, lname}
Salary {uid, salary}
=> NewTable {uid, full_name, salary}
首先我"添加"用户进入NewTable,工资为null - >行
n = NewTable(uid=0, full_name=(user.fname+user.lname))
session.add(n)
session.commit()
...提交,做其他事情......
然后我"合并"工资到NewTable,工资还可以,但是full_name已经不见了。
n2 = NewTable(uid=0, salary=100)
session.merge(n2)
session.commit()
为什么呢?我怎样才能突出某个领域?或者像这样自动组合。
答案 0 :(得分:0)
毕竟,我找到了解决办法。
使用“选择并更新”以避免覆盖整个新对象
从两个表中插入时
:
session.add(doc)
第二张表:
session.query(NewTable).filter(NewTable.uid == doc.uid).update(doc)