mysql - 不断收到外键错误
问题描述
每次尝试插入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'); `
任何帮助都会有所帮助!
解决方案
确保插入“ISBN”列的值是否符合属性数据类型。最重要的是确保在表“Book_Written_By”中用作 FK 的键应在其自己的表中声明为唯一的。例如,“title”字段应在其表“Book_Belongs_To”中声明为唯一
推荐阅读
- c - Unix-Server:读取线程行为错误
- c++ - 使用犰狳忽略平均值和其他统计函数中的 NaN
- awesome-wm - Awesomewm:如何在默认情况下使不可聚焦的客户端(Ubuntu 中的 google-chrome)成为可聚焦的?
- paypal - 有人可以伪造贝宝付款吗?
- video - 为什么 Superagent 不保留有关这部电影的任何信息?
- html - 将导航栏中的内容对齐到顶部
- jquery - 基于视口宽度的行高的 CSS calc
- php - 使用 PHP 和 mySQLi 的手工计数器脚本的问题
- python - 如何在 settings.py 文件中隐藏 EMAIL_HOST_PASSWORD?
- android - 使用 Dagger 将 Activity 绑定到 LifecycleOwner