0
我試着寫的PostgreSQL 9.1數據庫的觸發器,是這樣的:禁用自動提交PostgreSQL中創建觸發器
CREATE FUNCTION test_trigger()
RETURNS trigger AS
BEGIN
IF() THEN INSERT INTO...;
ELSEIF()...;
...
...
END IF;
RETURN NULL;
END
然後我得到這個錯誤:
Cannot commit when autoCommit is enabled error
所以,我試圖禁用它使用set autocommit=off;
但後來得到這個消息:
ERROR: SET AUTOCOMMIT TO OFF is no longer supported
提出的一種解決方案WA s使用BEGIN
開始交易,但我不知道如何編輯我的觸發器功能來做到這一點。
UPDATE
我試圖與創建觸發器禁用自動提交如下:
BEGIN;
CREATE FUNCTION test_trigger()
RETURNS trigger AS
$func$
BEGIN
IF() THEN INSERT INTO...;
ELSEIF()...;
...
...
END IF;
RETURN NULL;
END
COMMIT;
$func$
LANGUAGE plpgsql;
但連不上我每次運行這個時間。
所以我必須結合這兩部分?請檢查我的更新後的帖子 – Shadin
@Oxi:如前所述,我不認爲,autocommit是一個問題。只需修復create function語句即可。你不能在函數體中啓動/停止事務。一個函數總是原子的。 –
我修正了你提到的問題(在帖子中),但每次運行命令時連接都關閉。 – Shadin