Bonsoir,Double INSERT utilisant un post-échange TRANSACTION
Je souhaite créer une TRANSACTION avec le niveau d'isolement approprié. Sur cette transaction, je veux faire une double insertion et si l'une échoue, l'autre est abandonnée.
J'ai une procédure stockée déjà créé:
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 $$;
Mon doute est de savoir si la transaction doit être à l'intérieur de la fonction ou si elle est une procédure différente. Comment puis-je le créer avec un niveau d'isolation correct.
Cordialement
Mais comment pourrais-je appeler cette transaction? À chaque fois que je devais faire ces doubles inserts, comment j'appellerais la transaction si ce n'est pas une procédure? –
'' 'commencer; select * from insert_into_answercomments (1,2); fin; '' ' –
Merci. Qu'en est-il du niveau d'isolement? Avez-vous une idée quel est le niveau? Comment puis-je le déclarer? –