본문 바로가기

Database/Oracle

Create table with sequence.nextval in oracle

Oracle에 대한 경험은 거의 없는데.

MSSQL DB instance 의 clone을 Oracle에 만들어야 하는 경우가 발생했습니다.


편의를 위해서 IDENTITY() 설정을 하고 싶어서 찾아봤더니

12c 이후에 MSSQL과 유사한 형태의 지원이 가능하네요.

하필 11g를 돌리고 있어서 최신 기술을 쓰지 못하는 상황이 매우! 안타깝습니다...


11g 이전의 방식은

이러한 case에 대한 직접적인 방법이 없어서, Insert trigger를 이용하여 IDENTITY column value가 없는 경우 자동으로 sequence.NextVal 을 가져다 사용하는 형태입니다.


12c 이후의 방식은

column의 default values = sequence.NextVal로 설정하는 형태입니다.


아래의 ref 중 stackoverflow link에 두가지에 대한 예제가 잘 나와 있습니다.


References

http://stackoverflow.com/questions/10613846/create-table-with-sequence-nextval-in-oracle

http://oracle-base.com/articles/12c/default-values-for-table-columns-enhancements-12cr1.php



'Database > Oracle' 카테고리의 다른 글

insert or update if exists  (0) 2015.11.14