Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- FOR
- input
- boolean
- Openlayers
- 학습법 #집중력
- const
- htmlFor
- Append
- VAR
- createElement
- createtextnode
- appendChild
- Let
Archives
- Today
- Total
Atomic Habits
[SQL] PK-FK 연결 시 PK 테이블 삭제 방법 본문
질문
Table 삭제시 외부키로 연결되어 있다면.... 삭제가 가능합니까?
답변
참조하는 테이블(child table)은 삭제 가능하지만 참조되어지는 테이블(parent table)을 삭제하려면 Cascade Constraints 옵션을 추가로 사용해야 합니다.
-- 1. EMPLOYEE 테이블에 의해서 참조되어지는 DEPARTMENT 테이블을 생성한다.
SQL> CREATE TABLE department
(id NUMBER(2),
dname VARCHAR2(10),
CONSTRAINT deparment_dname_pk PRIMARY KEY(id));
--2. FOREIGN KEY를 포함하는, DEPARTMENT 테이블을 참조하는
-- EMPLOYEE 테이블을 생성한다.
SQL> CREATE TABLE employee
(id NUMBER(2),
name VARCHAR2(10),
salary NUMBER(4),
deptid NUMBER(2),
CONSTRAINT employee_deptid_fk FOREIGN KEY(deptid) REFERENCES department(id));
--3. 참조되어지는 테이블을 삭제하려면 다음과 같이 에러가 발생한다.
SQL> DROP TABLE department;
DROP TABLE department
*
1행에 오류:
ORA-02449: 외래 키에 의해서 참조된 테이블에 유일/기본 키입니다
-- 4. 참조되어지는 테이블을 CASCADE CONSTRAINTS 옵션을 통해 삭제한다.
SQL> DROP TABLE department CASCADE CONSTRAINTS;
-- 물론 참조하는 테이블은 그냥 삭제하면 된다.
SQL> DROP TABLE employee;
참조 : http://www.gurubee.net/lecture/1420
'IT > SQL' 카테고리의 다른 글
[Oracle] 오라클 WITH절 사용법 & 예제 (임시 테이블 만들기) (0) | 2021.11.20 |
---|---|
[Oracle] 모든 사용자 오브젝트(테이블, 인덱스, 시퀀스) 삭제 (0) | 2021.11.20 |
SQL Loader 활용 (0) | 2021.11.18 |
오라클 spool 기능 - 쿼리문 파일로 저장하기 (0) | 2021.11.17 |
[설치] 오라클 이전 버전 설치하기 (0) | 2021.11.17 |
Comments