[CPyUG:66724] Python Database API Specification v2.0里面为什么要求autocommit必须关闭?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[CPyUG:66724] Python Database API Specification v2.0里面为什么要求autocommit必须关闭?

Wayne-39
Python Database API Specification v2.0 的地址在这里:http://www.python.org/dev/peps/pep-0249/
里面提到:
Note that if the database supports an auto-commit feature, this must be initially off.
为什么要做这个限制呢?感觉没有什么好处。

--
 wayne
--~--~---------~--~----~------------~-------~--~----~
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb /针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: http://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
-~----------~----~----~----~------~----~------~--~---

Reply | Threaded
Open this post in threaded view
|

[CPyUG:66741] Re: Python Database API Specification v2.0里面为什么要求autocommit必须关闭?

heroboy
initially 又不是forever。
>if the database supports an auto-commit feature
这样的话,对于不支持 auto-commit 的XXXX来说,有一样的行为了。

On 9月26日, 下午2时06分, Wayne <[hidden email]> wrote:
>  Python Database API Specification v2.0 的地址在这里:http://www.python.org/dev/peps/pep-0249/
> 里面提到:
> Note that if the database supports an auto-commit feature, this must be
> initially off.
> 为什么要做这个限制呢?感觉没有什么好处。
>
> --
>  wayne
--~--~---------~--~----~------------~-------~--~----~
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb /针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: http://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
-~----------~----~----~----~------~----~------~--~---

Reply | Threaded
Open this post in threaded view
|

[CPyUG:66742] Re: Python Database API Specification v2.0里面为什么要求autocommit必须关闭?

yi huang-3
In reply to this post by Wayne-39
2008/9/26 Wayne <[hidden email]>
Python Database API Specification v2.0 的地址在这里:http://www.python.org/dev/peps/pep-0249/
里面提到:
Note that if the database supports an auto-commit feature, this must be initially off.

这句话可能是这个意思吧:如果某个数据库支持auto-commit特性的话,  默认肯定是关闭的,你需要调用一个方法来启用该特性。
瞎猜的。
 

为什么要做这个限制呢?感觉没有什么好处。

--
 wayne




--
http://codeplayer.blogspot.com/

--~--~---------~--~----~------------~-------~--~----~
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb /针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: http://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
-~----------~----~----~----~------~----~------~--~---

Reply | Threaded
Open this post in threaded view
|

[CPyUG:66743] Re: Python Database API Specification v2.0里面为什么要求autocommit必须关闭?

Wayne-39
原文是一个标准,所有和python数据库相关的接口都要遵守这个标准。
比如MySQLdb在初始化connection的时候,就会根据这个标准将autocommit置为false。这样,如果表引擎用innodb,代码里面没有用事务,并且没有执行commit的话,就会出现丢失数据的情况。这个在MySQLdb的FAQ(http://mysql-python.sourceforge.net/FAQ.html)里面也有说明。
只是不明白为什么要这么规定?

2008/9/26 黄毅 <[hidden email]>
2008/9/26 Wayne <[hidden email]>

Python Database API Specification v2.0 的地址在这里:http://www.python.org/dev/peps/pep-0249/
里面提到:
Note that if the database supports an auto-commit feature, this must be initially off.

这句话可能是这个意思吧:如果某个数据库支持auto-commit特性的话,  默认肯定是关闭的,你需要调用一个方法来启用该特性。
瞎猜的。
 

为什么要做这个限制呢?感觉没有什么好处。

--
 wayne




--
http://codeplayer.blogspot.com/





--
wayne

--~--~---------~--~----~------------~-------~--~----~
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb /针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: http://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
-~----------~----~----~----~------~----~------~--~---

Reply | Threaded
Open this post in threaded view
|

[CPyUG:66748] Re: Python Database API Specification v2.0里面为什么要求autocommit必须关闭?

yi huang-3
2008/9/26 Wayne <[hidden email]>
原文是一个标准,所有和python数据库相关的接口都要遵守这个标准。
比如MySQLdb在初始化connection的时候,就会根据这个标准将autocommit置为false。这样,如果表引擎用innodb,代码里面没有用事务,并且没有执行commit的话,就会出现丢失数据的情况。这个在MySQLdb的FAQ(http://mysql-python.sourceforge.net/FAQ.html)里面也有说明。
只是不明白为什么要这么规定?
 
哦,原来是这个意思,那肯定就是为了编写可移植的代码了,如果有的引擎默认开autocommit有的库默认又不开,要编写一个在所有引擎上都同样执行的代码就有点不方便了。
 


2008/9/26 黄毅 <[hidden email]>
2008/9/26 Wayne <[hidden email]>

Python Database API Specification v2.0 的地址在这里:http://www.python.org/dev/peps/pep-0249/
里面提到:
Note that if the database supports an auto-commit feature, this must be initially off.

这句话可能是这个意思吧:如果某个数据库支持auto-commit特性的话,  默认肯定是关闭的,你需要调用一个方法来启用该特性。
瞎猜的。
 

为什么要做这个限制呢?感觉没有什么好处。

--
 wayne




--
http://codeplayer.blogspot.com/





--
wayne
--~--~---------~--~----~------------~-------~--~----~
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:[hidden email]
退订: http://tinyurl.com/45a9tb /针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: http://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
-~----------~----~----~----~------~----~------~--~---