Не могу понять с чем связанна ошибка Error Code: 1005. Can't create table (errno: 150 "Foreign key constraint is incorrectly formed")

CREATE TABLE IF NOT EXISTS `book_shop`.`Book` (
`ISBN_BOOK` VARCHAR(20) NOT NULL,
`YEAR_BOOK` YEAR NULL,
`TITLE_BOOK` VARCHAR(45) NOT NULL,
`PRICE_BOOK` FLOAT NULL,
`ID_PUBLISHER` INT NOT NULL,
`ID_AUTHOR` INT NOT NULL,
PRIMARY KEY (`ISBN_BOOK`, `ID_PUBLISHER`, `ID_AUTHOR`),
INDEX `fk_Book_Publisher_idx` (`ID_PUBLISHER` ASC),
INDEX `fk_Book_Author1_idx` (`ID_AUTHOR` ASC),
CONSTRAINT `fk_Book_Publisher`
FOREIGN KEY (`ID_PUBLISHER`)
REFERENCES `book_shop`.`Publisher` (`ID_PUBLISHER`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Book_Author1`
FOREIGN KEY (`ID_AUTHOR`)
REFERENCES `book_shop`.`Author` (`ID_AUTHOR`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;


CREATE TABLE IF NOT EXISTS `book_shop`.`ShoppingBasket` (
`ID_SHOPBASK` INT NOT NULL,
`EMAIL_CUSTOMER` varchar(45) NOT NULL,
PRIMARY KEY (`ID_SHOPBASK`, `EMAIL_CUSTOMER`),
INDEX `fk_ShoppingBasket_Customer1_idx` (`EMAIL_CUSTOMER` ASC),
CONSTRAINT `fk_ShoppingBasket_Customer1`
FOREIGN KEY (`EMAIL_CUSTOMER`)
REFERENCES `book_shop`.`Customer` (`EMAIL_CUSTOMER`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE TABLE `book_shop`.`ShoppingBaskets_have_Books` (
`ISBN_BOOK` VARCHAR(20) NOT NULL,
`ID_SHOPBASK` INT NOT NULL,
`COUNT` INT NOT NULL,
PRIMARY KEY (`ISBN_BOOK`, `ID_SHOPBASK`),
INDEX `fk_ShoppingBaskets_have_Books_ShoppingBasket1_idx` (`ID_SHOPBASK`ASC),
INDEX `fk_ShoppingBaskets_have_Books_Book1_idx` (`ISBN_BOOK` ASC),
CONSTRAINT `fk_ShoppingBaskets_have_Books_Book1`
FOREIGN KEY (`ISBN_BOOK`)
REFERENCES `book_shop`.`Book` (`ISBN_BOOK`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ShoppingBaskets_have_Books_ShoppingBasket1`
FOREIGN KEY (`ID_SHOPBASK`)
REFERENCES `book_shop`.`ShoppingBasket` (`ID_SHOPBASK `)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

Error Code: 1005. Can't create table book_shop.shoppingbaskets_have_books (errno: 150 "Foreign key constraint is incorrectly formed")


Ответы (1 шт):

Автор решения: Sergey Moiseenko

REFERENCES book_shop.Book (ISBN_BOOK)

Ключ, на который вы ссылаетесь, должен быть уникальным.

→ Ссылка