[Oracle]오라클 pk 2개 이상 컬럼으로 지정하기(복합키)
- SW교육/DB
- 2022. 4. 11.
안녕하세요.
지난번에는 테이블을 직접 만들고 Dbeaver에서 데이터가져오기 기능을 이용하여 데이터를 올려 보았습니다. (data import, data upload)
2022.04.10 - [SW교육/DB] - [Oracle]Dbeaver에서 테이블 생성 및 데이터 가져오기(import,insert)
그런데, 또 다른 테이블을 같은 방식으로 생성하려고 하다 보니 에러가 발생하더군요.
CREATE TABLE JUNG.LOTTO_NUM (
LOTTO_NO DECIMAL(7,0) PRIMARY KEY
, SEQ DECIMAL(1,0) PRIMARY KEY
, NUM DECIMAL(2,0) NOT NULL
, BNS_YN char(1)
)
SQL Error [2260] [42000]: ORA-02260: 테이블에는 하나의 기본 키만 가질 수 있습니다.
바로 이런 에러입니다.
2개 이상의 컬럼을 Pk로 지정하여 테이블을 생성할 때는 다음과 같이 해주면 됩니다.
CREATE TABLE JUNG.LOTTO_NUM (
LOTTO_NO DECIMAL(7,0)
, SEQ DECIMAL(1,0)
, NUM DECIMAL(2,0) NOT NULL
, BNS_YN char(1)
, CONSTRAINT LOTTO_NO_SEQ_PK PRIMARY KEY (LOTTO_NO, SEQ)
)
Dbeaver에서 는 테이블에 커서를 두고 F4를 누르면 테이블 정보가 조회됩니다.
단, 새로 생성한 바로 후에는 Database Navigator에서 새로고침을 한 후 조회됩니다.
PK 가 복합키로 지정된 이름(LOTTO_NO_SEQ_PK)으로 해서 잘 생성이 되었군요.
아래 인텍스(indexes) 탭을 보면 pk에 해당되는 인덱스가 생성되었음을 확인할 수 있습니다.
감사합니다.
2022.04.09 - [SW교육/DB] - [Oracle]DB연결 안될 때 제일 먼저 확인하고 조치할 것은?
2022.03.24 - [SW교육/DB] - [DB활용]로또 데이터를 이용한 오라클 테이블 만들기
'SW교육 > DB' 카테고리의 다른 글
[Oracle]SQL Group by, 그룹 함수 쿼리 문제와 예시 (0) | 2022.04.17 |
---|---|
[Oracle]select , order by, fetch first rows only, rownum 에 대해서 알아 보자. (0) | 2022.04.12 |
[Oracle]Dbeaver에서 테이블 생성 및 데이터 가져오기(import,insert) (0) | 2022.04.10 |
[Oracle]DB연결 안될 때 제일 먼저 확인하고 조치할 것은? (0) | 2022.04.09 |
[DB활용]로또 데이터를 이용한 오라클 테이블 만들기 (0) | 2022.03.24 |