INSERT-Problem = integrity constraint violation: foreign key no parent

MarDaiBre

Aktives Mitglied
Hallo,

ich habe folgendes Problem:

Ich möchte mittels Methode eingegebene Formulardaten (aus einem Java-Programm) in eine Tabelle "Verursacherrisiko" in einer MS Access-Datenbank speichern. Meine Methode funktioniert im Grundsatz auch, da es bei einem anderen Formular im gleichen Programm bereits einwandfrei funktioniert.

Nun bekomme ich jedoch bei dem zweiten Formular den Fehler, dass eine Verletzung der Integrität bei Zeile 456 vorliegt (model.getOid()). Der in die Datenbankspalte einzufügende Text muss (so die Einschränkung) einen Parent Key in einer anderen Tabelle besitzen. Ich habe dazu für die Beziehung der Tabellen in MS Access Integritätseinschränkungen festgelegt - wenn ich diese rausnehme, dann funktioniert es auch, jedoch brauche ich diese Einschränkungen. Nehme ich die Einschränkung für die Beziehung zwischen den Tabellen "Verursacherrisiko" und "Bauteil" raus, dann schreit er bei model.getAid().

Interessant ist aus meiner Sicht nur, dass er ohne Probleme den vorherigen Schritt model.getVid() durchführt, obwohl der gleiche Aufbau und die gleiche Integritätseinschränkung vorhanden ist.

Hat da jemand eine Idee?

Vielen Dank schonmal vorab!

1.PNG
2.PNG
 

stg

Top Contributor
Du kannst ein "Verursacherrisiko" natürlich nur persistieren nachdem Bauteil, Fehlerart, Quadrant und Verursacher schon in der Datenbank liegen. Offenbar ist das hier aber (wenigstens bei Bauteil und Fehlerart) nicht der Fall.

Unabhängig davon würde ich das an deiner Stelle nicht von Hand codieren, sondern auf JPA zurückgreifen.
 

MarDaiBre

Aktives Mitglied
Danke für den Hinweis. Also die Oid 98152 (Bauteil) liegt bereits in der Tabelle Bauteil als Datensatz vor, genau wie die einzutragende Aid 10 (Fehlerart) schon in der Tabelle Fehlerart vorliegt. Daher wundert es mich ganz besonders, dass es bei Vid 1111 (Verursacher) einwandfrei läuft, obwohl die Beziehungen von der Struktur identisch sind.

In der Tabelle Verursacherrisiko sind bereits Datensätze vorhanden (per Hand eingetragen). Wenn ich nun die gleichen Werte mit meiner Methode einfügen möchte (nur den Primärschlüssel Rid anders), dann bekomme ich den besagten Fehler. :bahnhof:

Ich schau mal nach JPA. Besten Dank!
 
Zuletzt bearbeitet:

MarDaiBre

Aktives Mitglied
Hey, also ich habe den Fehler entdeckt:
Die Konsolenausgabe hat zwar den INSERT-Befehl in der gewünschten/richtigen Reihenfolge ausgegeben, jedoch komischerweise wurden die Werte für den Insert in einer anderen Reihenfolge der Datenbank übergeben.

Gewünscht (und per System.out.println) war: INSERT INTO Verursacherrisiko VALUES ('R99', '1111', '98152', 'Q1.1', '10', 'Ursache', 'Werkzeug');

Nachdem ich nochmal die komplette Integrität rausgenommen habe, merkte ich, dass in einer ganz anderen Reihenfolge importiert wurde. Nach dem Verursacher (daher hat das auch bei dem problemlos geklappt) wurde dann die Ursache importiert, dann das Werkzeug und dann erst die Oid (Bauteil). Dass es keine Oid mit dem Namen "Ursache" in der Tabelle Bauteil gibt, ist logisch und daher auch der Fehler.

Ich habe nun den INSERT-Befehl konkretisiert: INSERT INTO Verursacherrisiko (R_ID, V_ID, B_ID, Q_ID, A_ID, ...) VALUES (...);

Nun klappt alles! Danke nochmals!
 

stg

Top Contributor
Das habe ich in deinem ersten Post ganz übersehen :-O

Auf die Reihenfolge solltest du dich generell nie verlassen. Nicht beim Insert und auch nicht beim select, update ... Sofern du die Statements wirklich händisch selbst schreibst, solltest du grundsätzlich IMMER explizit die Spaltennamen angeben.
 

MarDaiBre

Aktives Mitglied
Ja, das hat mir sehr viel Zeit geraubt. Verstehe aber auch nicht, warum es nicht so importiert wird, wie angegeben. Warum so durcheinander?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
D Problem mit INSERT INTO Datenbankprogrammierung 19
EagleEye INSERT INTO Problem mit HSQLDB Datenbankprogrammierung 8
R "insert into" - Problem Datenbankprogrammierung 3
R Select und Insert in Schleife - Problem mit ResultSet Datenbankprogrammierung 2
C Problem mit Treiber? insert into Befehl geht nicht Datenbankprogrammierung 5
L SQL-Problem: Insert wird nicht ausgeführt Datenbankprogrammierung 5
L INSERT INTO - Problem unter Java Datenbankprogrammierung 8
M Problem mit Insert-Statements/ PreparedStatements Datenbankprogrammierung 6
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
O HOW TO INSERT PRIMARY INTO ANOTHER TABLE AND USE IT AS FOREIGN KEY TO DISPLAY DATA IN A RELATIONSHIP Datenbankprogrammierung 3
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
A MySQL Select und Insert in Java Datenbankprogrammierung 15
S PostgreSQL Bytea INSERT Datenbankprogrammierung 8
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
D Insert Methode per Servlet Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 0
D SQLite INSERT OR REPLACE INTO macht neuen Eintrag?! Datenbankprogrammierung 2
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
A Oracle insert Array in DB Datenbankprogrammierung 7
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
Y MySQL Eclipselink Insert JSF Beispiel gesucht Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
M MySQL Insert über mehrere Tabellen Datenbankprogrammierung 7
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
B MS SQL: Insert LOB Datenbankprogrammierung 4
M MySQL INSERT will einfach nicht funktionieren Datenbankprogrammierung 9
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C insert into mit between-Anweisung Datenbankprogrammierung 10
C Derby/JavaDB INSERT auf FOREIGN KEY schlägt fehl Datenbankprogrammierung 2
F Insert into Access Datenbankprogrammierung 3
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
E Derby/JavaDB Keine Reaktion von "insert into" im ActionListener Datenbankprogrammierung 22
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
Kenan89 Insert ohne Auswirkung Datenbankprogrammierung 7
B MySQL myBatis INSERT Datenbankprogrammierung 13
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
L H2 Auto INC Primary Key & Insert Datenbankprogrammierung 8
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
S MySQL INSERT schlägt nicht fehl, fügt aber auch nichts ein Datenbankprogrammierung 13
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
M Insert in Table mit 250 Feldern Datenbankprogrammierung 2
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
A Insert Methode Syntaxfehler Datenbankprogrammierung 2
G INSERT DATE in Oracle-DB Datenbankprogrammierung 11
G ODBC Insert und gleich danach Selects Datenbankprogrammierung 8
Iron Monkey Insert into Spalte ID AUTO_INCREMENT Datenbankprogrammierung 7
C ID-Rückgabe bei INSERT Datenbankprogrammierung 5
D mysql insert - performance/robustheit, "best practice" Datenbankprogrammierung 15
M Hibernate: Insert statt Update Datenbankprogrammierung 8
C Rückgabe ob INSERT erfolgreich Datenbankprogrammierung 11
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
K DB2 Insert mit Subselect Fehler Datenbankprogrammierung 2
M Derby insert, ID auslesen Datenbankprogrammierung 3
G Frage zum Insert-Statement Datenbankprogrammierung 2
R Probleme mit Insert Datenbankprogrammierung 2
M Insert Update usw. Datenbankprogrammierung 2
P Insert into mit zwei Datenbanken Datenbankprogrammierung 3
S Insert mit Select Datenbankprogrammierung 6
G INSERT-STATEMENT Datenbankprogrammierung 6
M insert in 2 tabellen Datenbankprogrammierung 7
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
V Fehlermeldung beim Insert Datenbankprogrammierung 16
S Insert into , executeupdate oder executequery Datenbankprogrammierung 3
B PrepareStatement "Insert into" fehlermeldung Datenbankprogrammierung 13
D Insert Oracle BLOB Datenbankprogrammierung 1
T ibatis + "generated p-key" nach insert? Datenbankprogrammierung 24
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
G INSERT abfragen ob erfolgreich? Datenbankprogrammierung 5
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
T INSERT-Befehl in Java für Oracle Datenbankprogrammierung 4
Y Hibernate - Datum Insert Datenbankprogrammierung 7
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
U INSERT INTO von 2 Textfeldern Datenbankprogrammierung 6
D Syntaxfehler in der INSERT INTO Anweisung Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben