UPDATE - Befehl nur in einer Zeile

FHWS

Mitglied
Hallo,

mit meiner erstellten Klasse möchte ich eine bestehende Tabelle in meiner Datenbank "Updaten".
Die Vorgehensweise soll so sein, dass die Zeile in welcher ein Boxinhalt "0" ist mit den neuen Daten gefüttert wird. Das Problem an der Sache ist, wenn ich die Daten an die Datenbank übergeben schreibt er mir die Werte in alle Zeilen rein in welcher der Boxinhalt "0" ist. Ich möchte allerdings, dass die Daten nur in eine Zeile mit dem Boxinhalt "0" gefüttert wird. Die anderen Zeilen mit Boxinhalt "0" sollen bei "0" bleiben. Hat jemand einen Tipp? Habe schon einiges ausprobiert und bin noch relativer Anfänger... Danke für Tipps!

Code:
ublic static String MariaDB;

 
    MariaDB() {
     
        try {
            Class.forName("org.mariadb.jdbc.Driver");    //Treiber für ODBC
            conn = DriverManager.getConnection("jdbc:mariadb://fm-s012mp.fhws.de","Java","");
            System.out.println("Erfolgreich verbunden. MDB"); 
            try {
                eintragen();
            }
            finally {
                conn.close();
            }
        }
        catch (Exception e){
            System.out.println("Keine Verbindung gefunden. MDB");
            System.err.println(e);
        } 
    }
 
    public void eintragen(){
     
        try {
            eintrag = conn.createStatement();
            eintrag.executeQuery ("UPDATE  `lagersystem_test`.`00_hauptdatenbank` SET Boxinhalt= '"+GUI_Lager.e3+"', Fahrgestell_Nr = '"+GUI_Lager.e1+"'  WHERE `Boxinhalt`='0' ");
         
        }
        catch (Exception e) {
            System.out.println(e);
        } 
    }
}
 

httpdigest

Top Contributor
Was genau meinst du denn mit "dass die Daten nur in eine Zeile mit dem Boxinhalt "0" gefüttert wird". Woher soll denn die Datenbank wissen, welche Zeile du meinst?
Hast du, außer, dass der "Boxinhalt" = '0' sein soll, noch andere qualifizierende Merkmale, die du zwar weißt aber eben die Datenbank nicht?
 

FHWS

Mitglied
Ich habe in meiner Tabelle mehrere Zeilen welche alle den Boxinhalt 0 haben. In der Zeile selbst ist noch eine Fahrgestelnummer auch mit dem Wert 0 sowie eine festgelegte fortlaufende Nummer. Wenn ich nun meine neuen Daten als Update übergebe, soll nur eine Zeile mit den neuen Werte überschrieben werden. Und genau die Bedienung das eben nur eine Zeile (welche ist egal) mit Boxinhalt 0 die neuen Daten bekommt fehlt mir.

Kann man das Problem nicht über einen ROWCOUNT lösen? Wüsste allerdings nicht wie ich den richtig anwenden soll.
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Wozu sind denn die leeren Zeilen da? Lass die weg und erzeuge immer eine neue. Für die fortlaufende Nummer gibt es autoincrement Felder.
 

httpdigest

Top Contributor
Mit Google und StackOverflow bekommst du im allgemeinen gute Antworten auf solche Fragen. Hat mich 10 Sekunden gekostet, folgendes mit Google zu recherchieren per "<database> update only one row":

SQL Server: https://stackoverflow.com/questions...date-only-one-row-in-database#answer-26929469

Oracle: https://stackoverflow.com/questions...y-one-row-without-using-rowid#answer-37318222

Alle (wenn du einen Primärschlüssel, bzw. eindeutigen Schlüssel hast): https://stackoverflow.com/questions/21258250/sql-how-to-update-only-first-row#answer-21258303
 

FHWS

Mitglied
Die Tabelle hat eine eine definierte Anzahl von Boxen welche eine Nummer zugewiesen bekommen haben Box1 Box2 usw. Die Box-Nummern stellen auch meinen Primärschlüssel dar. Die Zeilen mit den jeweiligen Box-Nummern sind also fix, die sollen in der Tabelle bleiben. Somit sehe ich welche Boxen belegt sind und welche eben frei sind.

@httpdigest meinst du ich hab nicht vorher mal gegoogelt und das Zeugs ausprobiert??Funktioniert leider nicht. Bzw. vll habe ich es auch nicht richtig eingepflegt.
 

httpdigest

Top Contributor
Also, mal zusammengefasst: Aufgrund der bis jetzt von dir veröffentlichten Informationen, sieht deine Tabelle mindestens mal so aus:
Code:
Boxnummer | Boxinhalt | Fahrgestellnummer | Weitere Spalten...
--------------------------------------------------------------
    1     |    '0'    |     '01'          |
    2     |    '0'    |     '02'          |
    3     |    '0'    |     '03'          |
    4     |    '1'    |     '04'          |
    5     |    '1'    |     '05'          |
    6     |    '0'    |     '06'          |
Und jetzt möchtest du, dass "irgendeine" Zeile mit Boxinhalt '0' per UPDATE Statement aktualisiert wird?
Also:
Code:
UPDATE Table SET WeitereSpalte='irgendwas'
WHERE Boxnummer = (SELECT Boxnummer FROM Table WHERE Boxinhalt='0' LIMIT 1)
?
 

FHWS

Mitglied
Genau die Tabelle ist so richtig aufgebaut. Ich möchte mit dem Update Statement nun in irgendeine Box in der der Boxinhalt = 0 ist, den Boxinhalt und die Fahrgestellnummer aktualisieren. Aber eben nur in eine Zeile nicht in alle bei denen der Boxinhalt = 0 ist.

Habe es nun so probiert, jedoch scheint da noch irgendwo ein Fehler zu sein.

Code:
eintrag.executeQuery ("UPDATE  `lagersystem_test`.`00_hauptdatenbank` SET Boxinhalt= '"3"', Fahrgestell_Nr = '"003"' WHERE `Boxinhalt`='0' ORDER BY Boxinhalt LIMIT 1");
 

httpdigest

Top Contributor
Code:
UPDATE  `lagersystem_test`.`00_hauptdatenbank` SET Boxinhalt= '"3"', Fahrgestell_Nr = '"003"' WHERE `Boxinhalt`='0' ORDER BY Boxinhalt LIMIT 1
und
Code:
UPDATE Table SET WeitereSpalte='irgendwas'
WHERE Boxnummer = (SELECT Boxnummer FROM Table WHERE Boxinhalt='0' LIMIT 1)
sind ja auch fundamental unterschiedlich.

Du kannst kein LIMIT an ein UPDATE Statement packen. Verwende einfach bitte das UPDATE Statement aus dem Stackoverflow Eintrag. Du hast es leider komplett verändert und den Subselect herausgenommen.
 

Thallius

Top Contributor
Das ganze macht konzeptionell trotzdem überhaupt keinen Sinn. Man vorverfüllt keine Datenbank mit Invaliden Datensätzen und füllt sie dann mehr oder weniger zufällig. Wenn eine Box leer ist, dann st sie nicht In der Datenbank. Wenn du etwas in die Box tust, dann legst du die Box in der Datenbank an. Wenn du eine maximale Anzahl an Boxen nicht überschreiten willst, dann muss das der Client regeln.
 

FHWS

Mitglied
@Thallius was Sinn macht und was keinen Sinn macht entscheidet immer noch derjenige der etwas plant zu machen. Da du den Hintergrund der ganzen Sache nicht kennst macht es für dich auch keinen Sinn. Danke für deine hilfreichen und kreativen Beitrag, braucht kein Mensch.

@httpdigest Vielen Dank für deine Ratschläge und deine Zeit hat jetzt so funktioniert. Stand bei der Sache etwas aufm Schlauch... Danke! :)
 
Zuletzt bearbeitet:

Thallius

Top Contributor
@Thallius was Sinn macht und was keinen Sinn macht entscheidet immer noch derjenige der etwas plant zu machen. Da du den Hintergrund der ganzen Sache nicht kennst macht es für dich auch keinen Sinn. Danke für deine hilfreichen und kreativen Beitrag, braucht kein Mensch.

Blöd nur wenn der Planer absolut keine Ahnung hat, wie es hier der Fall zu sein scheint. Aber es ist eben nicht jedem zu helfen...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
M Update Befehl Datenbankprogrammierung 1
G Update-Befehl Fehlerhaft ?? Datenbankprogrammierung 2
G Update Befehl funkt nicht. WARUM? Datenbankprogrammierung 5
B [SQL] UPDATE oder REPLACE INTO Befehl Datenbankprogrammierung 10
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
OnDemand SQL-Statement Update mit innerjoin Datenbankprogrammierung 18
OnDemand Update table SET will nicht Datenbankprogrammierung 9
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
S Update Tabelle aus Textfeld Datenbankprogrammierung 2
S JPA: update von Schlüsselwerten Datenbankprogrammierung 2
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
S MySQL Nach wiederholtem Update falsche Werte (im Speicher?) Datenbankprogrammierung 1
M SQL-Statement Datentypen in Kriterienausdruck unverdräglich bei Update auf DB von Java aus Datenbankprogrammierung 0
M SQL UPDATE richtig anwenden BITTE um HILFE Datenbankprogrammierung 3
M SQL UPDATE führt zu JAVA Absturz Datenbankprogrammierung 6
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
M Derby/JavaDB Neu geschriebener Eintrag per UPDATE lässt sich nicht unmittelbar abrufen Datenbankprogrammierung 2
S UPDATE user Datenbankprogrammierung 4
R Fehler 2601 trotz SQL-UPDATE ? Datenbankprogrammierung 2
B DB Update via batch Datenbankprogrammierung 3
H Update ganze zeile Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
D Error 1452: Cannot add or update a child row: a foreign key constraint fails Datenbankprogrammierung 15
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
5 Datenbank Update Datenbankprogrammierung 8
turmaline Oracle "Häppchenweises" Update durchführen Datenbankprogrammierung 4
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
D ArrayIndexOutOfBoundsException bei Update von JTable und Model Datenbankprogrammierung 13
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
I Derby/JavaDB Update Fehler Datenbankprogrammierung 4
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
1 On duplicate Key update Datenbankprogrammierung 3
M DB update geht einfach nicht Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
G MySQL Update Datenbankprogrammierung 5
M MySQL größere von zwei Zahlen in Update Statement Datenbankprogrammierung 2
T Update an SQL Tabelle ?! Datenbankprogrammierung 10
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
C Update Table1 mit Relationship Table2 Datenbankprogrammierung 6
prakdi einzelnen SQL Eintrag finden der "update" enthält Datenbankprogrammierung 3
V Datenbank Update Datenbankprogrammierung 7
A update methode für datenbank Datenbankprogrammierung 2
M Hibernate: Insert statt Update Datenbankprogrammierung 8
E Update DB; Werte aus Feldern übernehmen Datenbankprogrammierung 5
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
H Datenbank Update Datenbankprogrammierung 3
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
M Update mysql Fehler ?? Datenbankprogrammierung 4
T Problem beim Update in die Access DB Datenbankprogrammierung 9
R Update Time auslesen Datenbankprogrammierung 2
T DB2 delete/update über 2 Tabellen Datenbankprogrammierung 2
K Ist mein UPDATE fehlerhaft? Datenbankprogrammierung 3
S Update Problem Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
S CashedRowSet update - oder was mache ich falsch - Datenbankprogrammierung 6
S Update mit null Datenbankprogrammierung 11
H UPDATE . Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
T Update-Frage Datenbankprogrammierung 11
Y Hibernate - Update bestimmter Spalten Datenbankprogrammierung 2
G update sperren bei client/server anwendung Datenbankprogrammierung 7
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
B Update funktioniert nicht Datenbankprogrammierung 8
R Update und Insert Gleichzeitig? Datenbankprogrammierung 2
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
T Problem beim Update vom Resultset + Firebird Datenbankprogrammierung 2
G Update Statement automatisch unterteilen lassen Datenbankprogrammierung 3
G ist hieran was falsch ? UPDATE Anweisung Datenbankprogrammierung 8
W Hibernate Update Problem Datenbankprogrammierung 3
A Syntaxfehler bei update. Datenbankprogrammierung 8
O Update-Problem mit Hibernate-Framework Datenbankprogrammierung 5
L Problem mit Update Datenbankprogrammierung 14
L UPDATE löst Exception aus Datenbankprogrammierung 6
G Problem mit Datums-Format bei UPDATE Datenbankprogrammierung 3
F Update mit Prepared Statements Datenbankprogrammierung 10
B SQLite Befehl bauen? Datenbankprogrammierung 4
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
M Finde einen eifachen Befehl nicht Datenbankprogrammierung 4
M MySQL Befehl formatieren in MySQL Datenbankprogrammierung 4
E Datentyp enum und tinytext in sql-Befehl Datenbankprogrammierung 5
E falscher Befehl executeQuery() issue data Datenbankprogrammierung 12
S SQL Befehl: "suchwort" egal wo Datenbankprogrammierung 4
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben