Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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 pyodbc中的connection.commit()是什么?_Python_Odbc - Fatal编程技术网

谁能告诉我什么';python pyodbc中的connection.commit()是什么?

谁能告诉我什么';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

我曾经能够使用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(A,B) VALUES(1,2)")
connect.commit()
现在它工作了,但我只想了解一点,如果我知道我的连接没有丢失,为什么我需要这个

  • python新手-谢谢

不提交将所有查询放在一个事务中,当查询相互关联时,该事务会更安全(可能会更好地提高性能)。如果该功能在两个没有独立意义的查询之间进行,例如使用两个更新查询将资金从一个帐户转移到另一个帐户,该怎么办


如果不需要,您可以将
自动提交设置为true,但这样做的原因不多。

这不是Python或ODBC问题,而是关系数据库问题

关系数据库通常在事务方面工作:每当您更改某项内容时,事务都会启动,直到您
commit
rollback
时才会结束。这允许您连续进行多个更改,这些更改同时出现在数据库中(当发出
commit
时)。它还允许您在出现问题时作为一个单元中止整个事务(通过
rollback
),而不必显式撤消所做的每个更改

您可以通过打开自动提交功能使此功能透明,在这种情况下,每个语句后都会发出一个
commit
,但这通常被认为是一种不好的做法。

Ref。