Er begge tabeller InnoDB-typen?
Har virksomhedstabellen et indeks på virksomheds-id?
Jeg gætter på, at din tabel er MyISAM (standarden, hvis du ikke har ændret konfigurationen), og du kan ikke oprette fremmednøglebegrænsninger i MyISAM. Se beskrivelsen af CREATE TABLE for dine to borde.
Hvis begge tabeller er tomme, skal du slippe dem og genskabe dem ved at vælge InnoDB som motor. Du kan også tilføje FOREIGN KEY-begrænsningerne i scriptet til oprettelse af tabeller.
Fra MySQL Referencemanual :
@egervari:Hvad sker der, hvis du kører dette:
CREATE TABLE `test` (
`company_id` bigint(20) NOT NULL,
`module_id` bigint(20) NOT NULL,
KEY (`module_id`),
KEY (`company_id`),
CONSTRAINT `test_fk_module`
FOREIGN KEY (`module_id`)
REFERENCES `module` (`module_id`),
CONSTRAINT `test_fk_company`
FOREIGN KEY (`company_id`)
REFERENCES `company` (`company_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
Og hvis du kører:
ALTER TABLE `company_to_module`
ADD CONSTRAINT `company_to_module_fk_company`
FOREIGN KEY (`company_id`)
REFERENCES `company` (`company_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;