谁能告诉我什么';python pyodbc中的connection.commit()是什么?
我曾经能够使用simply execute语句运行和执行python。这将相应地在a、b中插入值1,2。但从上周开始,我没有收到任何错误,但我的数据库中什么也没有发生。没有旗帜-什么都没有。。。1,2没有在我的表中插入或替换谁能告诉我什么';python pyodbc中的connection.commit()是什么?,python,odbc,Python,Odbc,我曾经能够使用simply execute语句运行和执行python。这将相应地在a、b中插入值1,2。但从上周开始,我没有收到任何错误,但我的数据库中什么也没有发生。没有旗帜-什么都没有。。。1,2没有在我的表中插入或替换 connect.execute("REPLACE INTO TABLE(A,B) VALUES(1,2)") 我终于找到了一篇文章,如果我失去了与服务器的连接,我需要commit()。所以我要补充一点 connect.execute("REPLACE INTO TABLE
connect.execute("REPLACE INTO TABLE(A,B) VALUES(1,2)")
我终于找到了一篇文章,如果我失去了与服务器的连接,我需要commit()。所以我要补充一点
connect.execute("REPLACE INTO TABLE(A,B) VALUES(1,2)")
connect.commit()
现在它工作了,但我只想了解一点,如果我知道我的连接没有丢失,为什么我需要这个
- python新手-谢谢
如果不需要,您可以将
自动提交设置为true,但这样做的原因不多。这不是Python或ODBC问题,而是关系数据库问题
关系数据库通常在事务方面工作:每当您更改某项内容时,事务都会启动,直到您commit
或rollback
时才会结束。这允许您连续进行多个更改,这些更改同时出现在数据库中(当发出commit
时)。它还允许您在出现问题时作为一个单元中止整个事务(通过rollback
),而不必显式撤消所做的每个更改
您可以通过打开自动提交功能使此功能透明,在这种情况下,每个语句后都会发出一个commit
,但这通常被认为是一种不好的做法。Ref。