我尝试在microsoftsqlserver上使用pythonsql炼金术核心执行一个简单的合并连接查询。在
首先,让我解释一下如何使用server management studio:
MERGE [Database1].[Schema1].[Table1] table1
USING [Database2].[Schema2].[Table2] table2
ON table1.[Key] = table2.[Key]
WHEN MATCHED THEN
UPDATE
SET table1.[Column] = table2.[Column];
这很好,并且成功设置了Column
。在
但当我使用python执行此操作时:
^{pr2}$不会发生任何情况,不会引发异常,Column
值不会受到影响。在
我已检查SQL Server探查器并确保正在提交查询。在
我尝试执行更简单的查询,比如:
q="SELECT * FROM TABLE1"
很好用。在
这里有什么问题?在
SQLAlchemy默认情况下不会将MERGE语句识别为数据更改操作,因此在使用连接时不使用^{} 时不会发出提交。你应该读"Understanding Autocommit"。因此,要么使用显式事务:
或通知SQLAlchemy此语句应自动提交:
^{pr2}$顺便说一句,Python支持不带反斜杠的三引号的多行字符串,除非您特别希望避免换行:
^{3}$相关问题 更多 >
编程相关推荐