0
我有唯一約束的表中標記爲DEFERRABLE INITIALLY DEFERRED;
PostgreSQL的遞延約束和開始結束塊
然後我執行一個查詢:
START TRANSACTION;
INSERT INTO "T" VALUES (1,2);
INSERT INTO "T" VALUES (1,2);
INSERT INTO "T" VALUES (1,2);
ROLLBACK;
而且一切順利。但如果我嘗試執行
START TRANSACTION;
BEGIN;
INSERT INTO "T" VALUES (1,2);
INSERT INTO "T" VALUES (1,2);
INSERT INTO "T" VALUES (1,2);
END;
ROLLBACK;
我收到一個錯誤。爲什麼在退出BEGIN END
塊時Postgres強制約束檢查?交易結束時不應該檢查限制嗎?我怎樣才能改變這種行爲?
第二次啓動事務的嘗試應該已經表明它對此警告沒有影響:警告:已經有一個正在進行的事務。 – kgrittn
哇。我應該如何創建批處理命令? – Yavanosta
@ Yavanosta:「批處理命令」是什麼意思? –