You are defining your foreign key in the wrong place.
Color
is your "main" table, so it shouldn't define any foreign key:
CREATE TABLE `Color` (
`id` int(11) unsigned NOT NULL,
`color_name` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Shade
is the "detail" table - it references Color
(as evident by the color_id
column it contains), and thus it should hold the foreign key's definition:
CREATE TABLE `Shade` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`shade_name` varchar(250) DEFAULT NULL,
`color_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`color_id`) references Color (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=156 DEFAULT CHARSET=latin1;