RDB/PostreSQL
PostgreSQL 함수
세모데
2020. 3. 23. 19:08
PLPGSQL로 작성된 트랙잭션 관련 처리 함수 예제입니다.
CREATE TABLE test1 (id int);
CREATE PROCEDURE test_tx_proc()
AS $$
BEGIN
FOR i IN 0..4 LOOP
INSERT INTO test1 (id) VALUES (i);
IF i % 2 = 0 THEN
RAISE NOTICE 'i=%, txid=% will be committed', i, txid_current();
COMMIT;
ELSE
RAISE NOTICE 'i=%, txid=% will be rolledback', i, txid_current();
ROLLBACK;
END IF;
END LOOP;
END
$$
LANGUAGE PLPGSQL;