PostgreSQL의 저장 프로시저 예

1871 단어 postgressqlbeginners
저장 프로시저는 이름이 지정된 SQL(Structured Query Language) 문 집합으로 관계형 데이터베이스 관리 시스템에 그룹으로 저장되어 여러 번 호출될 때마다 재사용할 수 있습니다. 추가는 저장 프로시저에 출력이 있어야 하는 필수 사항이 아닙니다.

어떻게 작동하는지 이해하기 위한 예를 제공할 것입니다. 이 예에는 일부 학생의 등록을 일부 과목의 한 그룹에 저장하는 하나의 테이블이 있습니다.

CREATE TABLE inscription(
    cod_student INTEGER NOT NULL,
    cod_subject SMALLINT NOT NULL,
    group SMALLINT NOT NULL
);


제공하는 새 학생을 등록하기 위해 등록된 학생 수가 가장 적은 그룹을 알 수 있는 저장 프로시저를 만들어야 합니다.

이 경우 주제 1001에 대해 2개의 그룹이 있습니다.

select cod_subject, group, count(*) 
  from inscription i2  
  where cod_subject = 1001




그리고 우리는 이와 같이 저장 프로시저를 만들 것입니다.

create or replace procedure assign_group(
   student int,
   subject int
)  
language plpgsql    
as $$
declare
    chosenGroup int;
begin

    chosenGroup := (select grupo from (select cod_a,grupo,count(*) 
                from inscribe i2  
                    where cod_a = asignatura group by cod_a , grupo 
                order by count(*) asc limit 1 ) gru_men);


    insert into inscription(cod_student , cod_subject , group) 
               values (student, subject, chosenGroup );

    commit;
end;$$


이제 구문을 정의해 보겠습니다.
  • create procedure 키워드 뒤에 저장 프로시저의 이름을 지정하십시오.
  • 저장 프로시저에 대한 매개변수를 정의합니다. 저장 프로시저는 0개 이상의 매개변수를 허용할 수 있습니다.
  • plpgsql을 저장 프로시저의 절차 언어로 지정합니다(저장 프로시저에 다른 절차 언어를 사용할 수 있음).
  • 달러 인용 문자열 상수 구문을 사용하여 저장 프로시저의 본문을 정의합니다.

  • 마지막으로 프로시저(assign_group(1457855, 1001) 호출)를 호출하면 새 학생은 학생 수가 가장 적기 때문에 그룹 2에 등록됩니다.

    도움이 되길 바라며 읽어주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기