2008. 10. 3. 17:30

[oracle] 시퀀스를 이용한 기본키 자동 생성

 

시퀀스를 이용한 기본키 자동 생성

- 사용자가 키 값을 직접 입력하지 않고 서버단에서 자동 생성 된다.


 삽입할 타겟 테이블은 students( s_id, s_name, s_residents, s_address )


 시퀸스 생성


 SQL> create sequence foo_seq;

주문번호가 생성되었습니다.

 

 


트리거 생성


 SQL> create trigger pk_gen
  2   before insert on student
  3   for each row
  4   begin
  5  select foo_seq.nextval
  6     into :new.st_id
  7     from dual;
  8   end;
  9  /

트리거가 생성되었습니다.

 

 


데이터 입력 ( id 입력 제외 )


 insert into students(s_name, s_residents, s_address ) values( 'ghah', '456456',  '수성구');

 


데이터 확인


 SQL> select * from students;

S_ID
--------------------
S_RESIDENTS
--------------------------------------------------------------------------------
S_NAME
--------------------------------------------------------------------------------
S_ADDRESS
--------------------------------------------------------------------------------
1
231244
서지환

 

S_ID
--------------------
S_RESIDENTS
--------------------------------------------------------------------------------
S_NAME
--------------------------------------------------------------------------------
S_ADDRESS
--------------------------------------------------------------------------------
12
435647
하할ㄹㄹ

 

S_ID
--------------------
S_RESIDENTS
--------------------------------------------------------------------------------
S_NAME
--------------------------------------------------------------------------------
S_ADDRESS
--------------------------------------------------------------------------------
44
457657
김말자

 

S_ID
--------------------
S_RESIDENTS
--------------------------------------------------------------------------------
S_NAME
--------------------------------------------------------------------------------
S_ADDRESS
--------------------------------------------------------------------------------
5
456456
ghah
수성구