
DB2 Foreign Keys에 대한 질문 내용을 해결하기 위해, 먼저 FOREIGN KEY Constraint을 생성할 때 부모 테이블과 자식 테이블의 컬럼을 매핑할 때 오류가 발생하는 이유를 설명하겠습니다.
DB2에서는 FOREIGN KEY Constraint을 생성할 때, 부모 테이블과 자식 테이블의 컬럼이 동일한 데이터 타입을 가져야 합니다. 위 예제에서 부모 테이블인 "부서" 테이블의 "부서번호" 컬럼은 INT 타입이고, 자식 테이블인 "직원" 테이블의 "부서번호" 컬럼도 INT 타입입니다.
그러나 FOREIGN KEY Constraint을 생성할 때, 부모 테이블과 자식 테이블의 컬럼이 동일한 이름을 가져야 합니다. 위 예제에서 부모 테이블의 "부서번호" 컬럼은 "부서번호"로 명시되었지만, 자식 테이블의 "부서번호" 컬럼은 "직원번호"로 명시되어 있습니다.
이러한 오류를 해결하기 위해, FOREIGN KEY Constraint을 생성할 때 부모 테이블과 자식 테이블의 컬럼이 동일한 이름을 가져야 합니다. 위 예제에서 부모 테이블의 "부서번호" 컬럼과 자식 테이블의 "부서번호" 컬럼을 동일한 이름으로 명시하면 오류가 해결됩니다.
다음은 수정된 예제입니다.
sql
CREATE TABLE 부서 (
부서번호 INT PRIMARY KEY,
부서명 VARCHAR(50)
);
CREATE TABLE 직원 (
직원번호 INT PRIMARY KEY,
부서번호 INT,
FOREIGN KEY (부서번호) REFERENCES 부서(부서번호)
);
위 예제에서 FOREIGN KEY Constraint을 생성할 때 부모 테이블과 자식 테이블의 컬럼이 동일한 이름을 가져야 하므로, 부모 테이블의 "부서번호" 컬럼과 자식 테이블의 "부서번호" 컬럼을 동일한 이름으로 명시했습니다. 이로 인해 FOREIGN KEY Constraint이 성공적으로 생성됩니다.
2025-03-10 05:17