[PostgreSql]PostgreSql調用函數及用IF EXISTS判斷表是否存在


1.創建一個函數function1

 

-- FUNCTION: public.function1(character varying, integer)

-- DROP FUNCTION public.function1(character varying, integer);

CREATE OR REPLACE FUNCTION public.function1(
    useridl character varying,
    groupidl integer)
RETURNS TABLE(vehicle_id integer) 
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE 
    ROWS 1000
AS $BODY$

BEGIN
-- Insert statements for procedure here
RETURN QUERY
select v.vehicle_id
from mst_vehicle as v
where v.deletef=0;
END;

$BODY$;

ALTER FUNCTION public.function1(character varying, integer)
    OWNER TO postgres;

 

2.在另一個函數function2中調用function1

 

-- FUNCTION: public.function2(character varying,integer,timestamp without time zone)

-- DROP FUNCTION public.function2(character varying,integer,timestamp without time zone);

CREATE OR REPLACE FUNCTION public.function2(
    userIDl character varying,
    groupIDl integer,
    minVersionl timestamp without time zone)
RETURNS TABLE(
loading_info character varying(16)
 )
    LANGUAGE 'plpgsql'
    COST 100.0

AS $function$

BEGIN
-- Insert statements for procedure here
drop table IF EXISTS public.temp_ids;
create table public.temp_ids(vehicle_id int);
insert into public.temp_ids values(function1(userIDl,groupIDl));
RETURN QUERY
    
select 
car.loading_info
from dy_VehicleList

drop table IF EXISTS public.temp_ids;

END;

$function$;

ALTER FUNCTION public.function2(character varying,integer,timestamp without time zone)
    OWNER TO postgres;

其中用IF EXISTS判斷表是否存在,存在則刪除

DROP TABLE IF EXISTS tableName

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM