首页 > 解决方案 > 不断收到外键错误

问题描述

每次尝试插入Book_Written_By表时,我都会收到外键错误。

该表的 SQL 是:

`CREATE TABLE `Book_Written_By` (
`title` char ( 255 ),
`ISBN`  varchar2,
`fname` char ( 255 ),
`lname` char ( 255 ),
FOREIGN KEY(`title`,`ISBN`) REFERENCES `Book_Belongs_To`(`title`,`ISBN`),
FOREIGN KEY(`fname`,`lname`) REFERENCES `Author`(`fname`,`lname`)
);

Book_Belongs_To 的 SQL 是:

CREATE TABLE `Book_Belongs_To` (
`section_name`  char ( 255 ),
`year`  integer,
`title` char ( 255 ) NOT NULL UNIQUE,
`ISBN`  varchar2 NOT NULL UNIQUE,
`publisher` char ( 255 ),
`inventory` integer NOT NULL,
`price` float NOT NULL,
`edition`   char ( 255 ),
PRIMARY KEY(`ISBN`),
FOREIGN KEY(`section_name`) REFERENCES `Section`(`name`)
);'

错误:

外键不匹配 - “Book_Written_By”引用“Book_Belongs_To”:

INSERT INTO `Book_Written_By` (`title`, `ISBN`, `fname`, `lname`) 
VALUES ('Fundamentals of Database Systems', '0-8053-1755-4', 'Ramez A. ', 'Elmasri'); `

任何帮助都会有所帮助!

标签: mysqlsql

解决方案


确保插入“ISBN”列的值是否符合属性数据类型。最重要的是确保在表“Book_Written_By”中用作 FK 的键应在其自己的表中声明为唯一的。例如,“title”字段应在其表“Book_Belongs_To”中声明为唯一


推荐阅读