【问题标题】:(`library`.`book_loans`, CONSTRAINT `book_loans_ibfk_3` FOREIGN KEY (`isbn`) REFERENCES `book` (`isbn`))(`library`.`book_loans`, CONSTRAINT `book_loans_ibfk_3` FOREIGN KEY (`isbn`) REFERENCES `book` (`isbn`))
【发布时间】:2019-02-23 23:01:02
【问题描述】:

java.sql.SQLIntegrityConstraintViolationException:无法添加或更新子行:外键约束失败(library.book_loans,约束book_loans_ibfk_3外键(isbn)参考bookisbn ))

这是我的表格代码

| book_loans |

CREATE TABLE `book_loans` (
    `loan_id` int(11) NOT NULL,
    `isbn` varchar(10) DEFAULT NULL,
    `Card_ID` mediumint(9) NOT NULL AUTO_INCREMENT,
    `date_out` date DEFAULT NULL,
    `due_date` date DEFAULT NULL,
    `date_in` date DEFAULT NULL,
    PRIMARY KEY (`loan_id`),
    KEY `book_loans_ibfk_2` (`Card_ID`),
    KEY `isbn` (`isbn`),
    CONSTRAINT `book_loans_ibfk_2` FOREIGN KEY (`Card_ID`) 
        REFERENCES `borrower` (`Card_ID`),
    CONSTRAINT `book_loans_ibfk_3` FOREIGN KEY (`isbn`) 
        REFERENCES `book` (`isbn`)
) ENGINE=InnoDB 
    AUTO_INCREMENT=1002 
    DEFAULT CHARSET=utf8mb4 
    COLLATE=utf8mb4_0900_ai_ci

| |

CREATE TABLE `book` (
    `isbn` varchar(10) NOT NULL,
    `title` varchar(500) DEFAULT NULL,
    PRIMARY KEY (`isbn`)
) ENGINE=InnoDB 
    DEFAULT CHARSET=utf8mb4 
    COLLATE=utf8mb4_0900_ai_ci

| 借款人 |

CREATE TABLE `borrower` (
    `Card_ID` mediumint(9) NOT NULL AUTO_INCREMENT,
    `Ssn` varchar(11) DEFAULT NULL,
    `Bname` varchar(50) DEFAULT NULL,
    `Address` varchar(100) DEFAULT NULL,
    `Phone` varchar(15) DEFAULT NULL,
    PRIMARY KEY (`Card_ID`),
    UNIQUE KEY `Ssn` (`Ssn`)
) ENGINE=InnoDB 
    AUTO_INCREMENT=1002 
    DEFAULT CHARSET=utf8mb4 
    COLLATE=utf8mb4_0900_ai_ci

【问题讨论】:

  • 这不是有效的 T-SQL,我假设您没有使用 SQL Server 那么为什么要标记它? SQL Server 和 MySQL 是 2 个非常不同的 RDBMS。关于您的代码,请务必花时间格式化它;它不可读。最后,您似乎忘了问一个问题,这在发布问题时非常重要。请向我们提出问题,以便我们为您提供帮助。谢谢。
  • 很可能您的PRIMARY KEY 意味着loan_id 列应该是book_loans 表中的AUTO_INCREMENT 之一,这应该可以解决您的错误。
  • 我格式化了您的代码并删除了 SQL-Server 标签,因为这显然是 MySQL 代码。现在您能否编辑您的问题,告诉我们您在收到此错误时正在做什么,以及您不清楚错误消息中的内容。

标签: mysql database foreign-keys


【解决方案1】:

当您为“book_loans”表的“isbn”属性插入了一个未包含在主键值集中的值时,可能会发生此异常。

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 2018-10-11
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2023-01-24
    • 2013-01-03
    • 2012-12-15
    • 2014-01-02
    相关资源
    最近更新 更多