我正在尝试创建具有事务块的例程,但是该例程的BEGIN语句与事务的begin语句冲突。 是否有可能在postgres的例程中进行事务处理,所以如果一个语句失败,一切都会回滚?
我想做的是这样的:
CREATE FUNCTION transfer_money_from_user_to_user(payer_id BIGINT, payee_id BIGINT)
RETURNS TABLE(id INTEGER)
LANGUAGE plpgsql
AS $$
BEGIN
/* transaction start */
update user_money set user_money = user_money - 100 where user_money.id = payer_id;
update user_money set user_money = user_money + 100 where user_money.id = payee_id;
/* transaction end */
$$;
谢谢!