DataBase

[Mysql] MySQL :: ERROR 1005: Can't create table (errno: 150)

Sort 2013. 6. 21. 11:26

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