I am working on my first MySQL database for a job at my university. Unfortunately, I was stuck for some time trying to create tables with foreign keys between them.
This is the error that the MySQL Workbench Technical Support Wizard gives:
Executing SQL script on server
ERROR: Error 1005: Can't create table 'test.fremført' (errno: 150) CREATE TABLE IF NOT EXISTS `Fremført` ( `Plate` VARCHAR(20) NOT NULL , `Verk` VARCHAR(45) NOT NULL , `Artist` VARCHAR(45) NOT NULL , `Dato` DATE NULL , PRIMARY KEY (`Plate`, `Verk`, `Artist`) , INDEX `Fremført->Artist_idx` (`Artist` ASC) , INDEX `Fremført->Spor_idx` (`Plate` ASC, `Verk` ASC) , CONSTRAINT `Fremført->Artist` FOREIGN KEY (`Artist` ) REFERENCES `Artist` (`ArtistNavn` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `Fremført->Spor` FOREIGN KEY (`Plate` , `Verk` ) REFERENCES `Spor` (`Verk` , `Verk` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB
Does anyone know what is wrong with the above script, and if so, is there a solution?
Thanks!
edit: This is the requested spor request
DROP TABLE IF EXISTS `Spor` ; CREATE TABLE IF NOT EXISTS `Spor` ( `Plate` VARCHAR(45) NOT NULL , `Verk` VARCHAR(45) NOT NULL , `Spilletid` DECIMAL(3,2) NULL , PRIMARY KEY (`Plate`, `Verk`) , INDEX `Plate_idx` (`Plate` ASC) , CONSTRAINT `Plate` FOREIGN KEY (`Plate` ) REFERENCES `Plate` (`KatalogNr` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; DROP TABLE IF EXISTS `Artist` ; CREATE TABLE IF NOT EXISTS `Artist` ( `ArtistNavn` VARCHAR(30) NOT NULL , `Artistcol` VARCHAR(45) NULL , PRIMARY KEY (`ArtistNavn`) ) ENGINE = InnoDB;