MS-SQL에서 테이블 생성시 자동증가할수 있는 명령어가 있습니다.
근데 오라클은 없냐고 반문하시면 비슷하게 한번 만들어 보겠습니다.
아래와 같이 SEQUENCE 를 생성하고 인서트할때 시퀀스명.NEXTVAL을 이용하면 됩니다.
1. SEQUENCE 생성
create sequence autonum
increment by 1 -- 1씩 증가하라는거고요
start with 1 -- 1부터 시작이고요 100 시작할려면 100 이라고 쓰시면 됩니다.
nomaxvalue -- 최대값 제한이 없다
nocycle
nocache;
DEFAULT VALUE를 이용할려고 했는데 이것도 안됩니다.
create table test(num number default autonum.nextval, name varchar2(10));
1행에 오류:
ORA-00984: 열을 사용할 수 없습니다
2. TABLE 생성
create table test(num number, name varchar2(10));
3. 자동증가값 생성
입력시 다음과 같이 해주시면 됩니다.
insert into test (num) values (autonum.nextval);
조회 해보면 1 값이 들어가 있습니다.
select * from test
NUM NAME
---------- ----------
1
삭제는 drop sequence autonum; 이렇게 하시면 됩니다.
유의할 사항은 시퀀스명.Nextval 하면 전에 값으로 되돌릴수 없습니다.
현재값은 시퀀스명.CurrVal 로 조회 하시면 됩니다.
select 시퀀스명.currval from dual;
'Databases' 카테고리의 다른 글
계정 생성/ DB권한부여 / 패스워드 변경/ 삭제 (0) | 2009.12.18 |
---|---|
mysql 원격 접속 허용하기 (0) | 2009.12.09 |
DB복원후 사용자 계정 매핑 (0) | 2009.10.28 |
SQL Server 2000 (2005) 에서 SQL Server 2008 로 데이터 이동 [출처] [2/2] SQL Server 2000 (2005) 에서 SQL Server 2008 로 데이터 이동 |작성자 맑은하늘 (0) | 2009.10.28 |
SQL Server 2000 (2005) 에서 SQL Server 2008 로 데이터 이동 [출처] [1/2] SQL Server 2000 (2005) 에서 SQL Server 2008 로 데이터 이동|작성자 맑은하늘 (0) | 2009.10.28 |