PostgreSQL 存储过程/函数

Posted zslm___

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL 存储过程/函数相关的知识,希望对你有一定的参考价值。

1.有用的链接

postgresql 常用小函数

Postgresql数据库的一些字符串操作函数

PostgreSQL function里面调用function

 

PostgreSQL学习手册(函数和操作符<二>)

PostgreSQL的存储过程简单入门

2.建立块环境(执行环境)

do language plpgsql $$  
declare  
begin  
...  
..  
.  
end $$;  

 do language plpgsql $$ 
        declare           
        today date  :=now();
        yesterday date;   
        beginDay date := \'2012-12-12\';    
        val date;
    i int;
    i_str varchar(50);
        begin
        --在存储过程里调用需要使用 perform关键字
    perform InitsFunction() ;
        if(today is null) then         
            RAISE  NOTICE  \' today is null\' ;
            else
            RAISE  NOTICE  \' today is not null\' ;
        end if;
               
        end;
$$ ;

 

3. 建立存储过程

create or replace function InitstandardCheckInDays() returns void  as
$body$
    declare 
        today date  ;
        beginDay date;
        val date;
        i int;
    begin
        today  := current_date;
        if not exists(select 1 from standardCheckInDays) then
            beginDay := \'2012-12-12\';  
        ELSEIF (not exists (select 1 from standardCheckInDays where stCheckInDate=today)) then
            beginDay = (select max(stCheckInDate) from standardCheckInDays)  ;
        end if;

        if(beginDay is  null )then
            RAISE  NOTICE  \'当天的数据已存在标准签到表里\'     ;
            
        else
            RAISE  NOTICE  \'当天的数据不存在标准签到表里\'  ;
            RAISE  NOTICE  \'初始化或者30年后了!当天的数据不存在标准签到表里\'  ;
            for i in 1..100*100 loop 
                
                val := beginDay + i ;
                insert into standardCheckInDays(stCheckInDate)
                values(val) ;
                RAISE  NOTICE  \' %\' , val;
            end loop;
        end if;
         
    end;
$body$  language plpgsql;
select \'当前日期:\' || to_char(now(),\'YYYY-MM-DD HH24:MI:SS.MS\');

 

以上是关于PostgreSQL 存储过程/函数的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 存储过程/函数

存储过程/存储函数:PostgreSQL 中的 SELECT

Postgresql 11:存储过程调用错误 - 要调用过程,请使用 CALL、Java

如何在 PostgreSQL 13 中使用 INOUT 参数调用存储过程(不是函数)

python如何监控PostgreSQL代码运行

PostgreSQL存储过程-基于SQL的存储过程