您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在python sqlite3中使用保存点

5b51 2022/1/14 8:21:27 python 字数 4570 阅读 494 来源 www.jb51.cc/python

我正在尝试将保存点与python 2.6中内置的sqlite3模块一起使用.每次我尝试释放或回滚保存点时,我总是收到一个OperationalError:没有这样的保存点.我错过了什么?python version: 2.6.4 (r264:75821M, Oct 27 2009, 19:48:32) [GCC 4.0.1 (Apple Inc. buil

概述

我正在尝试将保存点与python 2.6中内置的sqlite3模块一起使用.每次我尝试释放或回滚保存点时,我总是收到一个OperationalError:没有这样的保存点.我错过了什么?

python version: 2.6.4 (r264:75821M,Oct 27 2009,19:48:32) 
[GCC 4.0.1 (Apple Inc. build 5493)]
Pysqlite version: 2.4.1
sqlite3 version: 3.6.11

Traceback (most recent call last):
  File "spDemo.py",line 21,in 
  
   sqlite3.OperationalError: no such savepoint: spTest

  

从这段代码

import sys
import sqlite3

print 'python version:',sys.version
print 'Pysqlite version:',sqlite3.version
print 'sqlite3 version:',sqlite3.sqlite_version
print

conn = sqlite3.connect('db_spDemo.db')
conn.isolation_level = "DEFERRED"

with conn:
    conn.execute("create table example (A,B);")

with conn:
    conn.execute("insert into example values (?,?);",(0,200))

    conn.execute("savepoint spTest;")
    conn.execute("insert into example values (?,(1,201))
    conn.execute("insert into example values (?,(2,202))
    conn.execute("release savepoint spTest;")

    conn.execute("insert into example values (?,(5,205))

这有效,请注意两个变化:

import sys
import sqlite3

print 'python version:',sqlite3.sqlite_version
print

conn = sqlite3.connect('shane.sqlite')
conn.isolation_level = None  # CHANGED

with conn:
    conn.execute("create table example (A,202))
    conn.execute("rollback to savepoint spTest;")  # CHANGED

    conn.execute("insert into example values (?,205))

输出

$python shane-sqlite3.py && sqlite3 shane.sqlite 'select * from example;'
python version: 2.6.2 (release26-maint,Apr 19 2009,01:56:41) 
[GCC 4.3.3]
Pysqlite version: 2.4.1
sqlite3 version: 3.6.10

0|200
5|205

这是一个令人不满意的答案,我没有在sqlite3模块文档中看到任何相关内容(我也没有尝试查看源代码).但我希望它能帮助您找到正确的方向.

总结

以上是编程之家为你收集整理的在python sqlite3中使用保存点全部内容,希望文章能够帮你解决在python sqlite3中使用保存点所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶