Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy upsert_Python_Mysql_Sqlalchemy - Fatal编程技术网

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)