gpt4 book ai didi

sql - 如何在 PostgreSQL 事务中使用变量

转载 作者:行者123 更新时间:2023-12-05 05:01:48 25 4
gpt4 key购买 nike

如何在 Postgresql 里面的一个事务中获取值到一个变量中,如果 SELECT 没有返回任何东西,抛出一个错误,如果 SELECT 返回数据,那么在事务中使用它们?

像这样:

BEGIN;

@activeRounds = SELECT * FROM "rounds" WHERE status = 'active';

if(!@activeRounds) {
RAISE ERROR "Has no Active rounds"
};

INSERT INTO "bet"
(user_id, round_id)
VALUES
(100, @activeRound[0].id)


COMMIT;

如何在事务中的一个请求中做类似的事情?

最佳答案

您可以根据您的表结构调整以下代码:

begin;
do
$$
declare
v int;
begin
select c1 into v from t1 where k1=1;
if not found
then
raise exception 'no row found';
else
insert into t2(c2) values(v);
end if;
end;
$$;
commit;

注意 begin; 开始事务和 begin 开始 pl/pgSQL block 之间的区别。

关于sql - 如何在 PostgreSQL 事务中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62568057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com