하안인 님이 쓰신 글 :
: 김백일 님이 쓰신 글 :
: : 하안인 님이 쓰신 글 :
: : : 필드키를 번호를 매기려고 속성+년+월+일련번호 식으로
: : : 키값을 정의해서 사용하려고 합니다.
: : : 그런데 두대의 피씨를 a,b라 가정하면
: : : a에서 일련번호를 매기고 등록하는 중에 b에서 일련번호를 매기면
: : : 두대의 피씨에 똑같은 일련번호가 생기잖아요.
: : : 아직 a에서 commit하지 않은 관계로요.
: :
: : 이미 비슷한 질문이 올라왔었습니다.
: :
http://firebird.borlandforum.com/impboard/impboard.dll?action=read&db=fb_qna&no=272
: :
: : GENEARATOR 는 DBMS 자체에서 만들어지기 때문에,
: : 절대로 같은 일련번호가 동시에 생기지 않습니다.
: :
: 일련번호를 쓰려는것이 아니라 일련번호란 말을 제가 잘못사용했습니다.
: 사용자번호로 다시 정정하겠습니다.
: 사용자번호를 그날에 추가된 것으로 일련번호형식으로 뒤에만 추가를 할예정입니다.
: 즉, 위에서 애기한대로 속성(1,2,3중하나)+년+월+숫자(3) 으로 번호를 매겨
: 각 속성마다 사람에대한 정보가 틀립니다.
:
: generatator는 말 그대로 일련번호만을 매기는 것이 아닌가요.
매월마다 GENERATOR를 1로 초기화 한 후,
SET GENERATOR ID_GEN TO 1
다음과 같이 CAST 와 문자열 결합(||) 연산자를 사용해서
TRIGGER나 STORED PROCEDURE 에서 사용자번호를 만들어 주면 됩니다.
NEW_USER_ID = ATTR || YEAR || MONTH || CAST(GEN_ID(ID_GEN, 1) AS CHAR(3))