CREATE SCHEMA 구문 사용
* 모든 테이블과 뷰 생성에 대해 하나의 연산으로 가능하게 할 때 쓴다.
* 하나의 구문으로 처리하므로 관련 테이블과 뷰 중 하나라도 생성 실패하면, 트랜잭션 전체가 Rollback 된다.
이것은 몇몇 테이블과 뷰의 생성 실패로 인해 관련 오브젝트들을 개별적으로 DROP 하는 부담을 없애준다.
* 관련 구문에 이상이 없으면 생성을 완료하고 트랜잭션을 Commit 한다.
* Object인 테이블과 뷰 이외에 권한 부여(Grant) 또한 넣을 수 있다.
* 실제 이 구문이 스키마(Schema)를 만드는 구문 같이 보이나, 실제 스키마를 만드는 것이 아니다.
사용자가 생성되면서 사용자와 동일한 이름의 스키마가 생성되며, 이 구문은 단지 단일 연산이 가능하게만 한다.
* 생성 시 사용되는 TABLESPACE 위치 지정 또한 가능하다.
- CREATE SCHEMA 제약사항
* 반드시 현재 로그인 된 사용자 이름(스키마)과 동일한 스키마 명을 지정해야 한다. 그렇지 않으면 ORA-02421 에러를 반환한다.
* 이 작업은 sys 유저 같이 DBA 권한이 있는 유저라 할 지라도 다른 이름의 스키마를 생성하는 것은 에러를 반환한다.
* CREATE TABLE, CREATE VIEW, GRANT 이외의 구문 삽입 시, 전체적인 문장 해석 오류가 발생한다.
- CREATE SCHEMA 문법
* 문법에서 보듯이 테이블, 뷰, 권한부여만 넣을 수 있다. 컬럼 추가나 인덱스 추가를 위한 구문들은 사용할 수 없다.
- CREATE SCHEMA 예제
* 성공 예제( 로그인 세션 유저: a1 )
CREATE SCHEMA AUTHORIZATION a1 CREATE VIEW emp_sal AS / |
* 실패 예제(로그인 세션 유저: sys, 그러나 생성 스키마 이름은 a1 인 경우)
SQL> connect / as sysdba 연결되었습니다. SQL> CREATE SCHEMA AUTHORIZATION a1 2 CREATE TABLE dept ( 3 deptno NUMBER(3,0) NOT NULL, 4 dname VARCHAR2(15), ... (중략) ... 14 CREATE VIEW emp_sal AS 15 SELECT * FROM emp WHERE empno <= 3000 16 GRANT select ON emp TO scott 17 / CREATE SCHEMA AUTHORIZATION a1 * 1행에 오류: ORA-02421: 누락 혹은 부당한 스키마 권한 식별자 |
'DB > Common' 카테고리의 다른 글
SQL 구문 기본 작성 가이드 (0) | 2012.05.08 |
---|---|
DBCP 소개/설정 및 validationQuery 이슈 (0) | 2012.04.30 |
join & view (0) | 2012.04.10 |
제로보드로 유료 사이트 만들기 (결제 테이블) (0) | 2012.04.09 |
데이터 모델링 순서 및 유의사항 (0) | 2012.04.05 |