Hallo,
ich soll eine Methode schreiben, die Werte in zwei Tabellen schreibt.
Die Querys wurden mit der Datenbank in Postgres getestet und liefern, das gewünschte Ergebnis.
Jedoch wenn ich es über mein Programm laufen lasse, dann werden nur die Werte in die erste Tabelle richtig eingefügt, in der zweiten passiert garnichts. Es wird weder eine Exception geworfen noch tritt ein anderer Fehler auf.
Das was ich als problematisch ansehe ist, das wenn ich dies in Postgres teste, ich beide insert gleichzeitig einfügen muss, denn sonst wird der Wert für currval('bestellid') im zweiten insert nicht gefunden. (currval('bestellid') bezieht sich auf nextval('bestellid') vom ersten insert)
Ich habe nuun schon bisschen rumprobiert, wie ich es schaffe beide inserts gleichzeitig einzufügen. Jedoch nicht wirklich was brauchbares hinbekommen.
Habt ihr Lösungsvorschläge?
Danke.
mfg werdas34
ich soll eine Methode schreiben, die Werte in zwei Tabellen schreibt.
Die Querys wurden mit der Datenbank in Postgres getestet und liefern, das gewünschte Ergebnis.
Jedoch wenn ich es über mein Programm laufen lasse, dann werden nur die Werte in die erste Tabelle richtig eingefügt, in der zweiten passiert garnichts. Es wird weder eine Exception geworfen noch tritt ein anderer Fehler auf.
Code:
public void bestellen() throws Exception {
Scanner read = new Scanner(System.in);
System.out.print("Kundenname:");
String kunde = read.nextLine();
System.out.print("Warenname:");
String ware = read.nextLine();
System.out.print("Anzahl der bestellten Ware:");
int anzahl = read.nextInt();
try {
Statement stmt = con.createStatement();
String query1 = " insert into bestellung(bestid, datum, status, kundid) "
+ " select nextval('bestellid'), CURRENT_DATE, 0, kundeid from kunde " + " where kname = '" + kunde
+ "' ;" + " insert into enthaelt(bestid, anzahl, warenid) " + " select currval('bestellid'), "
+ anzahl + ", warenid from ware " + " where bezeichnung = ' " + ware + "' ";
stmt.executeUpdate(query1);
} catch (SQLException e) {
System.out.println("SQLException:");
while (e != null) {
System.out.println("SQLState:" + e.getSQLState());
System.out.println("Message:" + e.getMessage());
System.out.println("ErrorCode:" + e.getErrorCode());
e = e.getNextException();
}
}
}
Das was ich als problematisch ansehe ist, das wenn ich dies in Postgres teste, ich beide insert gleichzeitig einfügen muss, denn sonst wird der Wert für currval('bestellid') im zweiten insert nicht gefunden. (currval('bestellid') bezieht sich auf nextval('bestellid') vom ersten insert)
Ich habe nuun schon bisschen rumprobiert, wie ich es schaffe beide inserts gleichzeitig einzufügen. Jedoch nicht wirklich was brauchbares hinbekommen.
Habt ihr Lösungsvorschläge?
Danke.
mfg werdas34