【发布时间】:2021-12-07 07:53:59
【问题描述】:
CREATE or REPLACE PROCEDURE checkUpdateAdd(imei1 inout text, assetName1 inout text)
language 'plpgsql'
AS $BODY$
declare
begin
PERFORM * from msdata;
if (select * from msdata where imei = imei1) then
--UPDATE "public"."msdata"
UPDATE public.msdata SET assetname1 = assetname where imei = imei1;
-- return assetname;
-- SELECT * FROM msdata ORDER BY imei ASC;
elseif (select * from msdata where imei != imei1) then
Insert into public.msdata(imei,assetname) values (imei1,assetname1);
--return;
end if;
-- return (null,null);
end;
$BODY$;
call checkUpdateAdd('123','abc1');
SELECT * FROM msdata;
其中msdata 是包含imei 和assetname 列的现有表。
所以现在如果我必须创建一个在调用时创建或更新 msdata 的过程
【问题讨论】:
-
你能请。解释你想达到什么目标?是不是如果imei1存在于表中,则返回与之关联的值,否则创建一条新记录(imei1,assetname1)?或者如果imei1存在则更新assetname?
-
imei 和assetnumber 是表中的列- ms 数据我想创建查询- 有2 个条件- 第一个是---> 如果imei = imei1 那么资产编号改变第二个是--->如果imei =! imei1 然后使用新的 imei 和资产编号创建新行
-
我明白了。请参阅下面的答案。
标签: postgresql plpgsql psql pgadmin-4