Можно ли ссылаться на один и тот же первичный ключ для 2 внешних ключей в MySQL?Я получаю сообщение об ошибке всякий раз, когда я пытаюсь - PullRequest
0 голосов
/ 30 марта 2011

Первые 2 проходят без проблем, но когда я пытаюсь сделать последний, я получаю это сообщение об ошибке:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Невозможно добавить или обновитьдочерняя строка: ограничение внешнего ключа не выполнено (corejava., CONSTRAINT #sql-8b8_50_ibfk_2 FOREIGN KEY (call_Number) ССЫЛКИ book (call_Number))

Должен быть способ обойтиэто верно?

Пожалуйста, см. исправленный код ниже: Для любых других новичков в моей транзакции в поле INSERT call_Number указаны неверные значения (крошечные, второстепенные, неправильные значения !!!!)

          s.executeUpdate (
            "CREATE TABLE transaction ("
            + "patron_ID CHAR(10) NOT NULL,"
            + "call_Number CHAR(10) NOT NULL, check_Out_Date DATE NOT NULL, check_In_Date DATE NOT NULL,"
            + "PRIMARY KEY (patron_ID, call_Number),"               
            + "overdue CHAR(15), total_Charge FLOAT)");

        count3 = s.executeUpdate (
            "INSERT INTO transaction"
            + " VALUES"
            + "('P222200000','MY.111.000','2011-06-06','2011-06-12','yes',5.00),"
            + "('P222200001','MY.111.001','2011-07-06','2011-07-12','no',5.00),"
            + "('P222200002','SF.111.002','2011-08-06','2011-08-12','yes',5.00),"
            + "('P222200003','SF.111.003','2011-09-06','2011-09-12','no',5.00),"
            + "('P222200004','AV.111.004','2011-10-06','2011-10-12','yes',5.00),"
            + "('P222200005','AV.111.005','2011-11-06','2011-11-12','no',5.00),"
            + "('P222200006','CO.111.006','2011-12-06','2011-12-12','yes',5.00),"
            + "('P222200007','CO.111.007','2011-01-06','2011-01-12','no',5.00),"
            + "('P222200008','IN.111.008','2011-02-06','2011-02-12','yes',5.00),"

        s.executeUpdate(
            "ALTER TABLE transaction ADD FOREIGN KEY (patron_ID) references " + dbName +  ".patron (patron_ID)");

        s.executeUpdate (
            "ALTER TABLE patron ADD FOREIGN KEY (call_Number) references " + dbName + ".book (call_Number)");

        s.executeUpdate (
           "ALTER TABLE transaction ADD FOREIGN KEY (call_Number) references " + dbName + ".book (call_Number)");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...