【发布时间】:2017-04-25 19:54:09
【问题描述】:
晚上好,
我想创建一个具有适当隔离级别的事务。在那个事务中,我想做一个双重插入,如果一个失败,另一个被中止。
我已经创建了一个存储过程:
create or replace function insert_into_answercomments(userid INTEGER, answerid INTEGER, body text)
returns void language plpgsql as $$
DECLARE result INTEGER;
insert into publications(body, userid)
VALUES (body, userid)
returning publications.publicationid AS publicationid INTO result;
insert into comments(publicationid) VALUES (result);
insert into answercomments(commentid, answerid) VALUES (result, answerid);
end $$;
我的疑问是事务是否应该在函数内部,或者它是否是一个不同的过程。如何使用正确的隔离级别创建它。
亲切的问候
【问题讨论】:
标签: postgresql transactions plpgsql