XesperantoX
Mitglied
Hallo zusammen!
Ich verzweifle gerad an einem MySQL - JDBC Problem und weder die Suche im Forum noch Google konnten mich bisher auf die richtige Spur bringen...
Prinzipiell geht es darum das ich ein Insert-Statement habe, das per JDBC eine Tabelle in meiner MySQL (5.037) DB füllen soll. Einer der Werte ist vom Typ int und ist ein Fremdschlüssel einer anderen Tabelle. Mit dem Query Browser von MySQL funktioniert der Insert problemlos. Mit JDBC bekomme ich aber immer eine SqlException zurück:
Soweit das Problem. Der Fehler ist soweit klar, ich kann keinen Dartensatz eintragen wenn nicht bereits in der anderen Tabelle ein entsprechender Wert vorhanden ist, dass ist aber nicht das Problem, alle Werte sind vorhanden und der Wert des PreparedStatements wird auch richtig gesetzt.
Meine Vermutungen wären nun:
a.) Es liegt an den MySQL Constraints: In der Tabelle in der ich den Fremdschlüssel habe ist für diesen definiert das er weder bei "on update" noch bei "on delete" irgendwas machen soll. Die Tabellen sind vom Typ InnoDB
b.) Es liegt an meinen AutoCommit-Einstellungen auf der Java Seite Ich hab da was bei Google gesehen aber konnte es nicht so richtig deuten. Könnte es bei einem PreparedStatement denn an so etwas liegen? Bei mir ist AutoCommit deaktiviert also false.
Wäre super wenn mir jemand einen Tipp hätte. Ich hab jetzt extra erstmal keinen Code gepostet, falls jemand aber irgendwas an Tabellen oder Codeschnippseln bräuchte würd ich sie natürlich gern nachreichen.
Grüße
Sascha
Ich verzweifle gerad an einem MySQL - JDBC Problem und weder die Suche im Forum noch Google konnten mich bisher auf die richtige Spur bringen...
Prinzipiell geht es darum das ich ein Insert-Statement habe, das per JDBC eine Tabelle in meiner MySQL (5.037) DB füllen soll. Einer der Werte ist vom Typ int und ist ein Fremdschlüssel einer anderen Tabelle. Mit dem Query Browser von MySQL funktioniert der Insert problemlos. Mit JDBC bekomme ich aber immer eine SqlException zurück:
Code:
ERROR [main] (MySqlQPruefungDAO.java:230) - Fehler beim updaten der Datenbank: Cannot add or update a child row: a foreign key constraint fails (`dokumentverwaltung3/qpruefung`, CONSTRAINT `qpruefung_ibfk_2` FOREIGN KEY (`idPruefungsart`) REFERENCES `pruefungsart` (`idPruefungsart`) ON DELETE NO ACTION ON UPDATE NO ACTION) idPrüfungsart =4
Soweit das Problem. Der Fehler ist soweit klar, ich kann keinen Dartensatz eintragen wenn nicht bereits in der anderen Tabelle ein entsprechender Wert vorhanden ist, dass ist aber nicht das Problem, alle Werte sind vorhanden und der Wert des PreparedStatements wird auch richtig gesetzt.
Meine Vermutungen wären nun:
a.) Es liegt an den MySQL Constraints: In der Tabelle in der ich den Fremdschlüssel habe ist für diesen definiert das er weder bei "on update" noch bei "on delete" irgendwas machen soll. Die Tabellen sind vom Typ InnoDB
b.) Es liegt an meinen AutoCommit-Einstellungen auf der Java Seite Ich hab da was bei Google gesehen aber konnte es nicht so richtig deuten. Könnte es bei einem PreparedStatement denn an so etwas liegen? Bei mir ist AutoCommit deaktiviert also false.
Wäre super wenn mir jemand einen Tipp hätte. Ich hab jetzt extra erstmal keinen Code gepostet, falls jemand aber irgendwas an Tabellen oder Codeschnippseln bräuchte würd ich sie natürlich gern nachreichen.
Grüße
Sascha