Ограничение внешнего ключа - неправильно сформированная проблема - PullRequest
0 голосов
/ 28 февраля 2020

Помогите разобраться в проблеме «Ограничение внешнего ключа сформировано неправильно» в этом коде

создание книг TABLE (

book_id              INT          NOT NULL AUTO_INCREMENT,
book_name            VARCHAR(255) NOT NULL,
book_description     VARCHAR(255) NOT NULL,
book_number_of_pages INT          NOT NULL,
book_state           VARCHAR(255) NOT NULL,
author_name          VARCHAR(255) NOT NULL,
PRIMARY KEY (book_id)

);

создание авторов TABLE (

author_id      INT          NOT NULL AUTO_INCREMENT,
author_name    VARCHAR(255) NOT NULL,
author_surname VARCHAR(255) NOT NULL,
book_name      VARCHAR(255) NOT NULL,

PRIMARY KEY (author_id),
FOREIGN KEY (book_name) REFERENCES books (book_name)
    ON DELETE CASCADE
    ON UPDATE CASCADE

);

1 Ответ

0 голосов
/ 28 февраля 2020

Не удалось выполнить 2-й оператор создания таблицы, так как указанный столбец book_name в таблице books не имеет индекса.

create TABLE books (
book_id              INT          NOT NULL AUTO_INCREMENT,
book_name            VARCHAR(255) NOT NULL,
book_description     VARCHAR(255) NOT NULL,
book_number_of_pages INT          NOT NULL,
book_state           VARCHAR(255) NOT NULL,
author_name          VARCHAR(255) NOT NULL,
PRIMARY KEY (book_id), 
KEY(book_name)
);

Однако это не очень хороший способ хранения избыточной информации (имя_бук). Вместо book_name вы должны хранить идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...