질문
자동증가 프라이머리 키 컬럼을 만들려면 어떻게 해야 합니까? 그리고 프라이머리 키에 NOT NULL 은 강제 사항입니까?
답변
파이어버드에서 자동증가 PK를 만들려면 제너레이터를 만들고 BEFORE INSERT 트리거를 설정하면 됩니다.
CREATE GENERATOR GEN_PK_ATABLE;
COMMIT;
테이블에 BIGINT 혹은 INTEGER 타입의 컬럼을 추가하고(여기서는 ATABLE_ID), 물론 NOT NULL 이어야 합니다.
키 필드의 값을 자동으로 주기 위한 트리거는 다음과 같습니다.
CREATE TRIGGER BI_ATABLE FOR ATABLE
ACTIVE BEFORE INSERT
AS
BEGIN
IF(NEW.ATABLE_ID IS NULL) THEN
NEW.ATABLE_ID = GEN_ID(GEN_PK_ATABLE, 1);
END
원문 : http://firebird.sourceforge.net/index.php?op=faq
|
임프님 글 보고서 삽질이 중단 ㅠ.ㅠ... (파이어버드 1.5 책 보던중...)
set term !!;
create trigger trig_gen_seq for guestbook
before insert position 0 as
begin
new.seq = gen_id(gen_seq, 1);
end!!
set term ;!!