여러 개의 외래 키 관계가있는 일련의 테이블을 만들려고합니다. 두 테이블 중 첫 번째 테이블은 우리가 지정하고 제조사가 지정한 다른 두 개의 기본 키를 가지고 있습니다. 세 번째 쿼리를 시도 할 때 오류가 발생하고 있습니다. 나는 무엇이 잘못되었는지 잘 모르므로 어떤 도움도 진심으로 감사 할 것입니다.MySQL 오류 150 (외래 키 문제?)
SQL은
CREATE TABLE rugs (
id INTEGER NOT NULL AUTO_INCREMENT,
manufacturer_id INTEGER NOT NULL,
name VARCHAR(255),
description TEXT,
PRIMARY KEY (id, manufacturer_id)
);
CREATE TABLE carpets (
id INTEGER NOT NULL AUTO_INCREMENT,
manufacturer_id INTEGER NOT NULL,
name VARCHAR(255),
warranty TEXT,
description TEXT,
fiber_name VARCHAR(255),
brand_name VARCHAR(255),
texture_name VARCHAR(255),
PRIMARY KEY (id, manufacturer_id)
);
CREATE TABLE carpet_styles (
id INTEGER NOT NULL AUTO_INCREMENT,
carpet_id INTEGER,
style_name VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (carpet_id) REFERENCES carpets (manufacturer_id)
);
CREATE TABLE carpet_colors (
id INTEGER NOT NULL AUTO_INCREMENT,
carpet_id INTEGER,
color_name VARCHAR(255),
color_category VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (carpet_id) REFERENCES carpets (manufacturer_id)
);
CREATE TABLE carpet_custom_names (
id INTEGER NOT NULL AUTO_INCREMENT,
carpet_id INTEGER,
custom_name VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (carpet_id) REFERENCES carpets (manufacturer_id)
);
CREATE TABLE rug_styles (
id INTEGER NOT NULL AUTO_INCREMENT,
rug_id INTEGER,
style_name VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (rug_id) REFERENCES rugs (manufacturer_id)
);
CREATE TABLE rug_colors (
id INTEGER NOT NULL AUTO_INCREMENT,
rug_id INTEGER,
color_name VARCHAR(255),
color_category VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (rug_id) REFERENCES rugs (manufacturer_id)
);
CREATE TABLE rug_shapes (
id INTEGER NOT NULL AUTO_INCREMENT,
rug_id INTEGER,
shape_name VARCHAR(255),
shape_category VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (rug_id) REFERENCES rugs (manufacturer_id)
);
CREATE TABLE catalog_contents (
id INTEGER NOT NULL AUTO_INCREMENT,
catalog_id INTEGER,
carpet_id INTEGER,
rug_id INTEGER,
PRIMARY KEY (id),
FOREIGN KEY (rug_id) REFERENCES rugs (id),
FOREIGN KEY (carpet_id) REFERENCES carpets (id),
FOREIGN KEY (catalog_id) REFERENCES catalogs (id)
);
'쇼 이노 디비 status' 마찬가지입니다, 정확히 원인을 무엇의 자세한 내용과 더불어, '마지막 외래 키 오류'섹션 될 것입니다 모두의 중간에 150 코드. –
불행히도 이것은 더 이상 최신 버전의 mysql (더 이상 stackoverflow.com에 질문을 게시하기 전에 시도한 것을 의미)이 아닙니다. – bulletshot60