CREATE TABLE TABLE_1
(
A CHAR(4) NOT NULL COMMENT 'AA',
B VARCHAR(4) NOT NULL COMMENT 'BB',
PRIMARY KEY (A,B)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT = 'TABLE_1';
CREATE TABLE TABLE_2
(
A CHAR(4) NOT NULL COMMENT 'AA',
B VARCHAR(4) NOT NULL COMMENT 'BB',
PRIMARY KEY (A,B),
CONSTRAINT FOREIGN KEY (A,B) REFERENCES TABLE_1 (A, B)
) COMMENT = 'TABLE_2';
MySQL :: ERROR 1005: Can't create table (errno: 150) 오류 떨어 짐.
-------------------------------------------------------------
CREATE TABLE TABLE_1
(
A CHAR(4) NOT NULL COMMENT 'AA',
B VARCHAR(4) NOT NULL COMMENT 'BB',
PRIMARY KEY (A,B)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT = 'TABLE_1';
CREATE TABLE TABLE_2
(
A CHAR(4) NOT NULL COMMENT 'AA',
B VARCHAR(4) NOT NULL COMMENT 'BB',
PRIMARY KEY (A,B),
CONSTRAINT FOREIGN KEY (A,B) REFERENCES TABLE_1 (A, B)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT = 'TABLE_2';
정상적으로 생성 됨.
1. column type들이 같아야 한다.
2. foreign key 설정할 field 역시 index가 생성되어 있어야 한다.
3. 테이블은 꼭 innoDB로 생성되어 있어야 한다.
'DataBase' 카테고리의 다른 글
[ iBatis ] jar (1) | 2013.11.18 |
---|---|
[DB] foreign key 생성 시 주의사항 (0) | 2013.08.09 |
[DB] DBMS별 지원기능 (0) | 2013.01.15 |
[DB] DBMS별 유용한 함수 (0) | 2013.01.15 |
[Oracle] 코어 오라클 데이터베이스 스터디 (0) | 2011.09.20 |