0
点赞
收藏
分享

微信扫一扫

PG DML returning

迪莉娅1979 2022-07-13 阅读 21


  • 构造数据

drop table if exists test cascade;
create table test(id int, name varchar);
insert into test values(1,'a'),(2,'b');
select * from test;

  • 实例1

CREATE OR REPLACE FUNCTION func_test() 
RETURNS INTEGER AS
$BODY$
DECLARE
v_name varchar;
BEGIN
select name from test where id=1 into v_name ;
raise notice 'v_name=%',v_name;
return 0;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

  • 实例2


CREATE OR REPLACE FUNCTION func_test2()
RETURNS INTEGER AS
$BODY$
DECLARE
v_name varchar;
BEGIN
insert into test values(3,'c') returning name into v_name;
raise notice 'v_name=%',v_name;
return 0;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;



  • 结果

imos=# select * from func_test();
imos=# NOTICE: v_name=a
func_test
-----------
0
(1 row)

imos=# select * from func_test2();
NOTICE: v_name=c
func_test2
------------
0


举报

相关推荐

0 条评论