PostgreSQL-함수
PostgreSQL functions저장 프로 시저라고도하는을 사용하면 일반적으로 데이터베이스 내의 단일 함수에서 여러 쿼리와 왕복을 수행하는 작업을 수행 할 수 있습니다. 다른 애플리케이션이 중간 계층 또는 복제 코드 대신 저장 프로 시저와 직접 상호 작용할 수 있으므로 함수를 사용하면 데이터베이스를 재사용 할 수 있습니다.
SQL, PL / pgSQL, C, Python 등 원하는 언어로 함수를 생성 할 수 있습니다.
통사론
함수를 생성하는 기본 구문은 다음과 같습니다.
CREATE [OR REPLACE] FUNCTION function_name (arguments)
RETURNS return_datatype AS $variable_name$
DECLARE
declaration;
[...]
BEGIN
< function_body >
[...]
RETURN { variable_name | value }
END; LANGUAGE plpgsql;
어디,
function-name 함수의 이름을 지정합니다.
[OR REPLACE] 옵션을 사용하면 기존 기능을 수정할 수 있습니다.
함수에는 return 성명서.
RETURN절은 함수에서 반환 할 데이터 유형을 지정합니다. 그만큼return_datatype 기본, 복합 또는 도메인 유형이거나 테이블 열의 유형을 참조 할 수 있습니다.
function-body 실행 가능한 부분을 포함합니다.
AS 키워드는 독립형 함수를 만드는 데 사용됩니다.
plpgsql함수가 구현 된 언어의 이름입니다. 여기서는 PostgreSQL에이 옵션을 사용합니다.이 옵션은 SQL, C, 내부 또는 사용자 정의 절차 언어의 이름 일 수 있습니다. 이전 버전과의 호환성을 위해 이름을 작은 따옴표로 묶을 수 있습니다.
예
다음 예제는 독립형 함수 생성 및 호출을 보여줍니다. 이 함수는 COMPANY 테이블의 총 레코드 수를 반환합니다. 다음 레코드가있는 COMPANY 테이블 을 사용합니다.
testdb# select * from COMPANY;
id | name | age | address | salary
----+-------+-----+-----------+--------
1 | Paul | 32 | California| 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall| 45000
7 | James | 24 | Houston | 10000
(7 rows)
totalRecords () 함수는 다음과 같습니다.
CREATE OR REPLACE FUNCTION totalRecords ()
RETURNS integer AS $total$
declare
total integer;
BEGIN
SELECT count(*) into total FROM COMPANY;
RETURN total;
END;
$total$ LANGUAGE plpgsql;
위의 쿼리가 실행되면 결과는 다음과 같습니다.
testdb# CREATE FUNCTION
이제이 함수에 대한 호출을 실행하고 COMPANY 테이블의 레코드를 확인하겠습니다.
testdb=# select totalRecords();
위의 쿼리가 실행되면 결과는 다음과 같습니다.
totalrecords
--------------
7
(1 row)