Force 님이 쓰신 글 :
: 파이어버드를 처음 쓰는사람입니다.
:
: 만들어진 Table에 데이터를 insert를 해야하는데.
: pk가 seq이고 Generator에서 자동증가를 하게 되어있는거 같은데요.
: Insert할때 select로 Generator값을 불러서 실행하면 추가는되는데
: Generator값은 그대로이더라구요.
: insert할때 Generator값도 같이 증가하거나 다른 해결방법이 있을까요?
:
: 검색해 봐도 값 가져오는건 있던데, 제가원하는 부분은 없더라구요.
도움이 되실까 해서...
아래는 샘플입니다.
테이블 이름은 COMMAND_LOG 이고
GEN_COMMAND_LOG_ID라는 이름의 generator를 만들었습니다.
이후 COMMAND_LOG_BI FOR 라는 이름으로 COMMAND_LOG 테이블에 대한
트리거를 만들고, insert 직전에 작동하도록 작성된 것입니다.
CREATE SEQUENCE GEN_COMMAND_LOG_ID;
ALTER SEQUENCE GEN_COMMAND_LOG_ID RESTART WITH 0;
SET TERM ^ ;
CREATE TRIGGER COMMAND_LOG_BI FOR COMMAND_LOG
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF ((NEW.LOG_ID IS NULL) OR (NEW.LOG_ID = 0))THEN
BEGIN
NEW.LOG_ID = GEN_ID(GEN_COMMAND_LOG_ID,1);
END
END^
SET TERM ; ^
|