我在 python 中使用 psycopg2,但我的问题是 DBMS 不可知论(只要 DBMS 支持事务):
我正在编写一个将记录插入数据库表的 python 程序。要插入的记录数超过一百万。当我编写代码以便在每个插入语句上运行提交时,我的程序太慢了。因此,我更改了我的代码以每 5000 条记录运行一次提交,速度上的差异是巨大的。
我的问题是,在插入记录时会在某些时候发生异常(某些完整性检查失败),我希望将我的更改提交到该点,当然,导致异常发生的最后一个命令除外,并继续其余的我的插入语句。
我还没有找到实现这一目标的方法;我实现的唯一一件事就是捕获异常,回滚我的事务并从那个点继续,在那里我松开了我挂起的插入语句。此外,我尝试(深度)复制光标对象和连接对象也没有任何运气。
有没有办法直接或间接地实现此功能,而无需回滚并重新创建/重新运行我的语句?
谢谢大家,
乔治。