[英]How to use variables in PostgreSQL transaction
怎么在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 块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.