오라클 DB 테이블 생성 질문입니다. 0 3 2,269

by 이은경 [2015.12.18 16:56:28]


SQL> CREATE TABLE EMP2(
    EMPNO  NUMBER    CONSTRAINT emp_pk_empno PRIMARY KEY,     
--  (컬럼) (데이터타입)  (제약조건)
    ENAME  VARCHAR2(20),
    JOB    VARCHAR2(40),
    MGR    NUMBER,
    HIREDATE  DATE,
    SAL    NUMBER,
    COMM   NUMBER,
    DEPTNO NUMBER);

 

강조한 저 부분은 어떤 의미인지 알고 싶습니다/

 EMPNO NUMBER이 컬럼이랑 컬럼 데이터의타입인 것은 알겠는데 제약 조건 다음에 emp_pk_empno는 무엇인지, 전체적으로 알고 싶습니다.

by 겸댕2후니 [2015.12.18 17:42:18]

emp_pk_empno는 제약조건의 이름이구요.

Primary key(기본키) 제약조건을 EMPNO컬럼에 건게 됩니다.

즉 기본키가 empno가 되는거지요.

기본키를 설정하는 방법은 아래와 같이 할수도 있습니다.

- EMPNO NUMBER PRIMARY KEY,

이경우에는 제약조건명이 특정규칙에 의해 자동으로 생성됩니다.


by 이은경 [2015.12.18 17:53:50]

그럼 혹시 

- PRIMARY KEY 생성 예제
SQL> CREATE TABLE emp5(
     empno NUMBER CONSTRAINT emp5_pk_empno PRIMARY KEY );     
    
 
-- ALTER TABLE 명령어로 PRIMARY KEY 생성 예제
ALTER TABLE emp2
ADD CONSTRAINT emp2_pk_empno  PRIMARY KEY (empno) ;
    

 

이것부터 막힙니다.

기본키가 2번은 지정되지 않는다는 오류가 떠서 

emp2 테이블을 보려고 하니 (select * from emp2)

지정된 레코드가 없다고 뜹니다. 

왜 그런지 알수 있을까요? ㅠㅠ 


by 임상준 [2015.12.19 10:53:31]
기본키 두 번 지정할수 없다는거나 레코드가 없다는거나 둘 다 메시지 그대로의 에러인데요.
두 개가 연관은 없구요..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입