postgresql procedure 예제

Skrevs fredagen den 2 augusti, 2019

다음 예제는 지정된 금액을 한 계정에서 다른 계정으로 이체하는 전송이라는 저장 프로시저를 만듭니다. 사용자 정의 함수와 달리 저장 프로시저에는 반환 값이 없습니다. 프로시저를 더 일찍 종료하려면 다음과 같이 식 없이 RETURN 문을 사용할 수 있습니다. SQL 인터페이스를 사용하여 호출할 수 있습니다. 프로시저 만들기를 사용하면 대부분의 다른 최신 데이터베이스와 마찬가지로 프로시저를 작성할 수 있습니다. 구문은 매우 간단하고 사용하기어렵지 않습니다 : 일반적인 단일 따옴표 구문이 아닌 프로시저 정의 문자열을 작성하기 위해 달러 따옴표 (섹션 4.1.2.4 참조)를 사용하는 것이 종종 유용합니다. 달러 인용없이, 절차 정의의 단일 따옴표 또는 백슬래시는 두 배로 하여 탈출해야합니다. CREATE 프로시저는 새 프로시저를 정의합니다. 프로시저 만들기 또는 바꾸기는 새 프로시저를 만들거나 기존 정의를 대체합니다. 프로시저를 정의하려면 사용자가 언어에 대한 사용 권한을 가져야 합니다. 예를 들어, 이 함수가 호출될 때 인수로 넣은 cartodb_id가 있는 설명 열을 업데이트합니다.

외부 것만. 그리고 이 다른 예에서는 함수가 입력으로 넣은 cartodb_id가 있는 행을 삭제합니다. 거래 제어를 통해 프로시저 내에서 커밋 및 롤백할 수 있습니다. CREATE 함수는 함수 내부의 트랜잭션을 지원하지 않습니다. 이것은 PostgreSQL의 함수와 절차의 주요 차이점입니다. 트랜잭션은 데이터베이스에 대해 수행되는 작업 단위입니다. 트랜잭션은 사용자가 수동 방식으로 또는 일종의 데이터베이스 프로그램에 의해 자동으로 수행되는 논리적 순서로 수행되는 작업 의 단위 또는 시퀀스입니다. 트랜잭션은 데이터베이스에 하나 이상의 변경 내용을 전파하는 것입니다. 예를 들어 테이블에서 레코드를 만들거나 업데이트하거나 삭제하는 경우 테이블에서 트랜잭션을 수행합니다. 데이터 무결성을 보장하고 데이터베이스 오류를 처리하기 위해 트랜잭션을 제어하는 것이 중요합니다. PostgreSQL을 사용하면 저장 프로시저라고도 하는 다양한 절차 언어를 사용하여 사용자 정의 함수로 데이터베이스 기능을 확장할 수 있습니다. 새 저장 프로시저를 만들려면 CREATE 프로시저 문을 사용합니다.

다음은 CREATE 프로시저 문의 단순화된 구문: 커밋된 처음 두 테이블 – 프로시저 내부의 롤백으로 인해 세 번째 테이블이 만들어지지 않았습니다. PostgreSQL에서는 저장 프로시저와 사용자 정의 함수가 CREATE FUNCTION 문으로 만들어집니다. 데이터베이스 시스템의 저장 프로시저와 함수의 개념 에는 차이가 있습니다: C 언어 소스 코드의 프로시저 이름이 SQL 이름과 같지 않을 때 AS 절의 이 형식은 동적으로 로드 가능한 C 언어 프로시저에 사용됩니다. 절차. 문자열 obj_file은 컴파일된 C 프로시저를 포함하는 공유 라이브러리 파일의 이름이며 LOAD 명령으로 해석됩니다. 문자열 link_symbol는 프로시저의 링크 기호, 즉 C 언어 소스 코드의 프로시저의 이름입니다. 링크 기호를 생략하면 정의되는 SQL 프로시저의 이름과 동일하다고 가정합니다. 그러나 IN이 입력 인수를 정의하고 출력 인수를 OUT하는 IN 및 OUT을 사용하여 입력 및 출력 인수를 정의하는 또 다른 방법이 있습니다. OUT 인수 선언은 여러 값을 반환해야 할 때 유용합니다.

Teater Kapija
Örmölla 321
SE-274 56 Abbekås

+46 (0)411 533 772
+46 (0)70 740 17 61

info@kapija.com
www.kapija.com