每次尝试插入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'); `
任何帮助都会有所帮助!
答案 0 :(得分:0)
您正尝试将非整数值0-8053-1755-4
插入到ISBN
中,该as! MyCell
定义为整数。
答案 1 :(得分:0)
我认为你犯了一个错误,ISBN被定义为一个整数,因此0-8053-1755-4将评估为-9812。您可能应该编写805317554或使用单引号和varchar2。如果这不是错误,请仔细检查您是否拥有指定标题和ISBN的book_written_by。
答案 2 :(得分:0)
ISBN
是整数,给定的值不是整数。将架构更改为ISBN字段的char。
使用您给定的架构,您将获得ISBN的无效值 http://sqlfiddle.com/#!9/4cd19f/1/0
答案 3 :(得分:0)
确保将值插入" ISBN"列符合属性数据类型。最重要的是确保在表格#34; Book_Written_By"中用作FK的密钥。应该在自己的表中声明为唯一的。例如," title"字段应在其表格中声明为唯一的#Book; Book_Belongs_To"