(`library`. book_loans`, CONSTRAINT` book_loans_ibfk_3` FOREIGN KEY (`isbn`) ССЫЛКИ` book` (`isbn`)) - PullRequest
0 голосов
/ 24 февраля 2019

java.sql.SQLIntegrityConstraintViolationException: невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (library. book_loans, CONSTRAINT book_loans_ibfk_3 ИНОСТРАННЫЙ КЛЮЧ (isbn) ССЫЛКИ book (isbn))

Вот мой код для таблиц

| 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

1 Ответ

0 голосов
/ 24 февраля 2019

Это исключение может возникнуть, когда вы вставили значение для атрибута "isbn" таблицы "book_loans", которое не включено в набор значений первичного ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...