[Mysql] 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)
) 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로 생성되어 있어야 한다.