请帮助理解此代码中的“外键约束格式不正确”问题
创建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}}
);
答案 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。