簡體   English   中英

到底如何調用帶有Rollback的過程呢?

[英]How to call a procedure with Rollback in the end?

我正在使用 PostgreSQL 和 DBeaver。 出於測試目的,我想在事務中進行過程調用; 然后回滾它。 我寫了以下腳本:

DO $$
BEGIN
 call MyProcedure();
ROLLBACK $$;

我試圖在 DBeaver 控制台中運行它。 我收到以下錯誤:

SQL Error [42601]: ERROR: syntax error at end of input它指向最后的$$

怎么了; 我怎樣才能達到我的目標:在交易中進行過程調用; 然后回滾呢?

對於 DO 塊,你錯過了end

DO $$
BEGIN
    RAISE NOTICE 'test';
    ROLLBACK;
END $$;

但是因為你想顯示一個表格內容,你不能使用匿名塊,而只能開始/結束交易。

BEGIN;
    select * from test;
    call my_procedure();
    select * from test;
ROLLBACK;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM