我已经写了一个内务处理程序在Postgres,与简单的逻辑...
DECLARE开始LOOP(当有数据要处理时)DELETE 1000行(大小可配置)COMMIT END LOOP END;问题是,我得到的错误是;
错误:事务终止无效其中:PL/pgSQL函数测试.hskp(可变字符、数字、数字)COMMIT时的第99行
如果没有COMMIT,它可以正常工作。
这种BATCH方法是不可能实现,还是有简单的变通方法?
有人举个例子吗?
我已经写了一个内务处理程序在Postgres,与简单的逻辑...
DECLARE开始LOOP(当有数据要处理时)DELETE 1000行(大小可配置)COMMIT END LOOP END;问题是,我得到的错误是;
错误:事务终止无效其中:PL/pgSQL函数测试.hskp(可变字符、数字、数字)COMMIT时的第99行
如果没有COMMIT,它可以正常工作。
这种BATCH方法是不可能实现,还是有简单的变通方法?
有人举个例子吗?
1条答案
按热度按时间pwuypxnk1#
不能在PostgreSQL函数中使用
COMMIT
。可以使用过程来代替,但最简单和推荐的方法不是成批删除行,而是一次删除所有行。