Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

제너레이터 사용하기 (Using Generators)


Recommended Posts

Docwiki에 있는 "Using Generators"를 번역한 글(최종 번역일: 2022년 8월 21일)

<< 위로 가기: 제너레이터(Generator)를 가지고 작업하기

CREATE GENERATOR 진술을 사용하여 제너레이터(generator)를 만들고 나면, 만들어진 제너레이터가 해당 데이터베이스 안에 존재하지만 아직은 실제로 숫자를 만들어내지는 않은 상태이다. 이 숫자 생성기 즉 제너레이터(generator)를 불러내려면 인터베이스의 GEN_ID() 함수를 호출해야 한다. GEN_ID() 함수에는 파라미터 두개 즉 호출할 제너레이터의 이름 (이것은 이미 해당 데이터베이스 안에 정의되어 있는 것이어야 한다)과 <증가폭(step)> 값을 받는다. 증가폭 값은 얼마나 차이를 두고 다음 값이 생성되는 지를 지정하는 값인데, 만약 음수로 지정되면 그만큼 작아진 값이 생성된다.  GEN_ID() 는 트리거(trigger), 스토어드 프로시저(stored procedure) 안에서 호출될 수도 있고 애플리케이션 안에서 INSERTUPDATE, DELETE 동작을 발생시킬 때 호출될 수도 있다. 애플리케이션에서 SELECT 진술 만에서 GEN_ID() 를 사용하여 제너레이트에서 값을 받아와서 그 값을 INSERT 진술 안에 넣어서 사용할 수도 있다.

GEN_ID()의 문장 구조는 다음과 같다.

GEN_ID(제너레이터 이름, 증가폭);

숫자를 생성하려면 아래 단계를 따라 진행하면 된다.

  1. 제너레이터를 생성한다.
  2. 트리거(trigger) 또는 스토어드 프로시저(stored procedure) 또는 애플리케이션 안에서 해당 제너레이터를 지정하여 GEN_ID() 를 호출하도록 한다.
  3. 해당 제너레이터가 값을 반환하는 시점은 트리거가 발효될 때 또는 스토어드 프로시저 또는 애플리케이션이 실행될 때이다. 생성된 숫자 값을 실제로 사용할 것인지 아닌 지는 해당 트리거, 스토어드 프로시저, 애플리케이션에서 결정한다. 예를 들어, 트리거에서 컬럼에 해당 값을 넣을 수 있다.

 생성된 숫자를 데이터베이스 컬럼 안에 넣기를 멈추려면, 해당 트리거, 스토어드 프로시저, 애플리케이션를 삭제하거나 또는 더 이상 GEN_ID() 를 불러내지 않도록 변경()한다.

중요:

제너레이터에서 반환하는 숫자는 64-비트 값이다. 생성된 값을 ISC_INT64 변수로 담을 수 있는 컬럼을 정의해야 하는데 DECIMAL 또는 NUMERIC 데이터 타입을 사용해야 한다.

예: 아래 진술은 GEN_ID() 를 사용하여 이름이 G인 제너레이터를 호출하여 SALES 테이블 안에 있는 주문 번호를 1씩 증가한다.

INSERT INTO SALES (PO_NUMBER) VALUES (GEN_ID(G,1));

트리거에서 제너레이터를 사용하는 방법에 대한 자세한 내용은 Working with Triggers 에 있다. 스토어드 프로시저에서 제너레이터를 사용하는 방법에 대한 자세한 내용은 Working with Stored Procedures 에 있다.

다음 단계 (Advance To)

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.