Python SQLAlchemy upsert
我想从不同会话中的两个存在表创建一个表 例如:Python SQLAlchemy upsert,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我想从不同会话中的两个存在表创建一个表 例如: User {uid, fname, lname} Salary {uid, salary} => NewTable {uid, full_name, salary} 首先我将用户“添加”到新表中,薪资为空->确定 n = NewTable(uid=0, full_name=(user.fname+user.lname)) session.add(n) session.commit() 。。。承诺,然后做点别的 然后我把薪水“合并”到新表
User {uid, fname, lname}
Salary {uid, salary}
=> NewTable {uid, full_name, salary}
首先我将用户“添加”到新表中,薪资为空->确定
n = NewTable(uid=0, full_name=(user.fname+user.lname))
session.add(n)
session.commit()
。。。承诺,然后做点别的
然后我把薪水“合并”到新表格中,薪水还可以,但全名不见了
n2 = NewTable(uid=0, salary=100)
session.merge(n2)
session.commit()
为什么??我怎样才能插入一些字段?或者像这样自动联合收割机。毕竟,我找到了解决方案 使用“选择并更新”避免覆盖整个新对象 从两个表插入时
对于第一个表:
session.add(doc)
对于第二个表:
session.query(NewTable).filter(NewTable.uid == doc.uid).update(doc)