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

+ Recent posts