PGSQL
- 函数
create [or replace] function 函数名
returns 数据类型 AS $$ --AS表示后面是要执行的函数体,$$代表开始
DECLARE
name catalog; --注意这有个分号 --赋值符 :=
BEGIN
{body}
END
$$
language plpgsql volatile
cost 100
language表示使用的语言是plpgsql,volatile表示是可变的
–第二种创建函数的方式。
create [or replace] function “public”.“函数名”
returns “pg_catalog”.“void” AS − − 必 须 要 用 双 引 号 , 单 引 号 报 错 B E G I N b o d y E N D --必须要用双引号,单引号报错 BEGIN {body} END −−必须要用双引号,单引号报错BEGINbodyEND
language plpgsql volatile
cost 100
有参函数
create or replace function add(in a int,in b int,out sum int)
RETURNS int AS $$
BEGIN
sum=a+b; --因为参数定义了in 和out,所以不用写return
END
$$
language plpgsql volatile
cost 100;
select add(1,2)
--不能重载
-----------------------------------------------------------
返回文本类型
create or replace function text()
RETURNS text AS $$
DECLARE
_msg text :='HelloText';
BEGIN
RETURN _msg;
END
$$
language plpgsql volatile
cost 100;
select text()
-----------------------------------------------------------------
--返回单行表数据,注意没有begin和end
CREATE OR REPLACE FUNCTION "public"."aaa_aaa"()
RETURNS "public"."person" AS $BODY$
SELECT * FROM person;
$BODY$
LANGUAGE sql VOLATILE
COST 100;
select aaa_aaa()
---------------------------------------------------------------------
--Returns setof 关键字和ROWS 来显示多行
CREATE OR REPLACE FUNCTION "public"."student2"()
RETURNS setof student AS
$$
SELECT * FROM student;
$$
LANGUAGE sql VOLATILE
COST 100
rows 1000;
-- FUNCTION: public.test_ye_student()
-- DROP FUNCTION public.test_ye_student();
CREATE OR REPL