system info
SHOW VARIABLES LIKE “%version%”;
when i create table in database with following statements it sucked.
x
CREATE TABLE flavors (
created_at DATETIME,
updated_at DATETIME,
deleted_at DATETIME,
deleted INTEGER,
platform_id VARCHAR(36) NOT NULL,
flavor_id VARCHAR(36) NOT NULL,
PRIMARY KEY (platform_id, flavor_id)
);
CREATE TABLE flavor_links (
created_at DATETIME,
updated_at DATETIME,
deleted_at DATETIME,
deleted INTEGER,
flavor_id VARCHAR(36) NOT NULL,
platform_id VARCHAR(36) NOT NULL,
href TEXT,
PRIMARY KEY (flavor_id, platform_id),
FOREIGN KEY(flavor_id, platform_id) REFERENCES flavors (flavor_id, platform_id)
)
with following error logs
Error Code: 1822. Failed to add the foreign key constraint. Missing index for constraint 'flavor_links_ibfk_1' in the referenced table 'flavors'
Advertisement
Answer
The ordering of columns is important!
FOREIGN KEY (flavor_id, platform_id) REFERENCES flavors (flavor_id, platform_id)
is not the same as:
FOREIGN KEY (platform_id, flavor_id) REFERENCES flavors (platform_id, flavor_id)