gpt4 book ai didi

java - 在运行一个过程后执行回滚

转载 作者:行者123 更新时间:2023-11-29 12:26:24 26 4
gpt4 key购买 nike

我在为查询创建单元测试时遇到问题。在 Java 方法中,它看起来像这样:

public String method () {
StringBuilder query = new StringBuilder();
query.append(" BEGIN ");
query.append(" <stored procedure name> ;");
query.append(" END; " );
return query.toString(); }

在测试方法中,它必须做一个回滚事务。对于经典的插入/删除/更新,它们是在启动事务/回滚时批量添加的。但我不确定它是否适用于存储过程,特别是如果它们包含在“开始”/“结束”中。我需要知道 PostgreSQL 的相同答案。

最佳答案

对于初学者来说,Postgres 中没有存储过程。只有功能,几乎但不完全相同。 DO statement或者准备好的声明也可能对您有用。

特别是,函数始终是原子的,并且在事务中运行。在调用它们的外部事务中,或在它们自己的事务中。

是的,函数可以像任何其他 SQL 命令一样回滚。一些不能回滚的命令也不能嵌套在外部事务中(如 CREATE DATABASE),因此也不能在函数内部使用。

BEGIN;
-- do something else
SELECT myfunc();
-- do something else
ROLLBACK; -- everything back to the start (well, almost everything)

相关:

关于java - 在运行一个过程后执行回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com