· 7 years ago · Jan 15, 2019, 04:02 AM
1MySQL Foreign Key Error 1005 errno 150 (table engine, fields types, lengths and indexations are ok)
2-- ----------------------------
3-- Table structure for `hotels`
4-- ----------------------------
5DROP TABLE IF EXISTS `hotels`;
6CREATE TABLE `hotels` (
7 `id` int(10) NOT NULL AUTO_INCREMENT,
8 -- other fields
9 PRIMARY KEY (`id`)
10) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
11
12
13-- ----------------------------
14-- Table structure for `hotelsearch_query`
15-- ----------------------------
16DROP TABLE IF EXISTS `hotelsearch_query`;
17CREATE TABLE `hotelsearch_query` (
18 `id` int(10) NOT NULL,
19 -- other fields
20 PRIMARY KEY (`id`)
21) ENGINE=InnoDB DEFAULT CHARSET=utf8;
22
23
24-- ----------------------------
25-- Table structure for `hotelsearch_result`
26-- ----------------------------
27DROP TABLE IF EXISTS `hotelsearch_result`;
28CREATE TABLE `hotelsearch_result` (
29 `query_id` int(10) unsigned NOT NULL,
30 `hotel_id` int(10) unsigned NOT NULL,
31 -- other fields
32 PRIMARY KEY (`query_id`,`hotel_id`),
33 KEY `IDX_QUERY` (`query_id`),
34 KEY `IDX_HOTEL` (`hotel_id`),
35 FOREIGN KEY (`query_id`) REFERENCES `hotelsearch_query`(`id`) ON DELETE CASCADE ON UPDATE CASCADE,
36 FOREIGN KEY (`hotel_id`) REFERENCES `hotels`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
37) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
38
39CREATE TABLE `hotelsearch_result` (
40 `query_id` int(10) NOT NULL,
41 `hotel_id` int(10) NOT NULL,
42 ...