create [orreplace] function function_name(参数逗号隔开) returns 返回值类型 as $body$
declare//声明变量
变量名 变量类型 :=变量值;
例如:name char(20):='su';begin
/*函数体;包括DML语句;
特别注意:如果有返回值,要省略最后的return语句的话,则在函数体的最后必须是一个select语句且返回类型必须和上面声明的类型一样;
*/
return 变量名//和上面返回的变量一样;
end
$body$
language'plpgsql';
二、控制语句 1、if 条件(五种形式) IF … THEN IF … THEN … ELSE IF … THEN … ELSE IF IF … THEN … ELSIF … THEN … ELSE IF … THEN … ELSEIF … THEN … ELSE(注:ELSEIF 是ELSIF 的别名) 2、循环 使用LOOP,EXIT,CONTINUE,WHILE, 和FOR 语句,可以控制PL/pgSQL 函数重复一系列命令。 1)、LOOP [ <
4)、WHILE [ <
5)、FOR(整数变种) [ <
FOR i IN REVERSE 10..1 LOOP 这里可以放一些表达式 END LOOP; 如果下界大于上界(或者是在 REVERSE 情况下是小于),那么循环体将完全不被执行。而且不会抛出任何错误。
3、异常捕获 EXCEPTION WHEN 错误码(如:STRING_DATA_RIGHT_TRUNCATION:字串数据右边被截断) THEN /*后台打印错误信息/ RAISE NOTICE ‘错吴信息’; 三、链接运算符 在postgresql中链接运算符是:||而不是+; 四、代码示例
createorreplace function f_test() returns void as $$
declarebeginfor i in1..1000 loop
execute'insert into test select generate_series('||(i-1)*40000+1||','||i*40000||'),(random()::float)*'||i*0.0001||',clock_timestamp()';end loop;end;
$$ language plpgsql;