Goedemiddag, net nieuw hier. ik hoop dat iemand mij kan helpen. Ik probeer mijn databast terug te zetten met behulp van Bigdumper maar ik krijg deze foutmelding:

Query: CREATE TABLE `t5s10_osmap_sitemap_menus` (
`sitemap_id` int(11) unsigned NOT NULL,
`menutype_id` int(11) NOT NULL,
`changefreq` enum('always','hourly','daily','weekly','monthly','yearly','never') NOT NULL DEFAULT 'weekly',
`priority` float NOT NULL DEFAULT '0.5',
`ordering` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`sitemap_id`,`menutype_id`),
KEY `idx_ordering` (`sitemap_id`,`ordering`),
KEY `idx_sitemap_menus` (`sitemap_id`),
CONSTRAINT `fk_sitemaps_menus` FOREIGN KEY (`sitemap_id`) REFERENCES `t5s10_osmap_sitemaps` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

MySQL: Can't create table `nadine_united`.`t5s10_osmap_sitemap_menus` (errno: 150 "Foreign key constraint is incorrectly formed")


Groetjes, Nadine
Waarschijnlijk is het gewoon een kwestie van de tabellen in de goede volgorde aanmaken.

Het is zaak dat de t5s10_osmap_sitemaps tabel bestaat voordat je de t5s10_osmap_sitemap_menus tabel (die aan de eerstgenoemde tabel refereert) aanmaakt.

Wat je ook kunt doen, zoals @AdFundum voorstelt, is tijdelijk de foreign key checks uitzetten zodat MySQL hier niet over struikelt.

Ik weet verder niet hoe "BigDump(er)" precies werkt? Hoe groot is de database/het importbestand precies?
Nadine Peeters heeft het al bijna goed in de reactie van 16/10/2020 17:33:29.
Met een kleine aanpassing (CREATE TABLE) erbij werkt het prima.


CREATE TABLE `t5s10_osmap_sitemaps` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT NULL,
  `params` text,
  `is_default` tinyint(1) NOT NULL DEFAULT '0',
  `published` tinyint(1) NOT NULL DEFAULT '1',
  `created_on` datetime DEFAULT NULL,
  `links_count` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `default_idx` (`is_default`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

CREATE TABLE `t5s10_osmap_sitemap_menus` (
  `sitemap_id` int(11) unsigned NOT NULL,
  `menutype_id` int(11) NOT NULL,
  `changefreq` enum('always','hourly','daily','weekly','monthly','yearly','never') NOT NULL DEFAULT 'weekly',
  `priority` float NOT NULL DEFAULT '0.5',
  `ordering` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`sitemap_id`,`menutype_id`),
  KEY `idx_ordering` (`sitemap_id`,`ordering`),
  KEY `idx_sitemap_menus` (`sitemap_id`),
  CONSTRAINT `fk_sitemaps_menus` FOREIGN KEY (`sitemap_id`)
    REFERENCES `t5s10_osmap_sitemaps` (`id`) ON DELETE CASCADE  ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Ben niet helemaal zeker over die AUTO_INCREMENT=2 though.

Reageren