外键约束是格式错误的问题

时间:2020-02-28 07:54:19

标签: database foreign-keys mariadb

请帮助理解此代码中的“外键约束格式不正确”问题

创建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

);

创建TABLE作者 (

{{1}}

);

1 个答案:

答案 0 :(得分:0)

第二个create table语句失败,因为表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)不是一个好的设计。您应该存储id而不是book_name。