Eintragung in einer Spalte nach Abfrage

Status
Nicht offen für weitere Antworten.

Taramsis

Bekanntes Mitglied
Hi Leute ,

ich mache folgende Abfrage in einer Methode:

Java:
Object[][] list = null; 

try {
    int listSize = 0;
    Object[] choices = managerAlg.getSortPriority().sortedPriorities();
    Class.forName(driver);
    con = (Connection) DriverManager.getConnection(url + "modules"  , user, pass);
    stmt = (Statement) con.createStatement();

    res2 =  (ResultSet) stmt.executeQuery( "SELECT " +  this.createSelectString() + " " +
                                          "FROM " + this.createFromString() + " " + 
                                                    this.createJoinString() + " " );
    while (res2.next()) {
        listSize++;
    }
    res2.first();

    minStart = new Date();

    int listWidth = managerAlg.getSortPriority().sortedPriorities().length +1;
    if (listSize > 0) {
        list = new Object[listSize][listWidth];
        for (int j = 0; j < listSize; j++) {
            for (int i = 1; i < listWidth; i++) {
            Date date = res2.getTime(choices[i-1] + ".TaskStart");
            if (date.before(minStart)) {
                minStart = date;
            }
            list[j][i] = minStart;
            }
            res2.next();
        }
    }
    con.close();

}
catch(Exception e) {
    e.printStackTrace();
}
//System.out.println(minStart);    
return minStart;

Ich habe mehrere Tabellen, die gleich aufgebaut sind und möchte immer die mindest Startzeit von Spalte "TaskStart" wissen. Ich joine die Tabellen und führe meine Abfrage dann durch!
Nun gibt es eine Spalte die "TaskProcessed" ( in jeder Tabelle natürlich) lautet und vom Typ "int(1)" ist. Hier möchte ich nach der Abfrage ein "1" eintragen, damit ich die Abfrage nur bei TaskProcessed=0 mache.
Wie könnte ich solch ein Update nach einer Abfrage durchführen?
 

thE_29

Top Contributor
Welche Datenbank hast du den im Einsatz? Bei Oracle (glaube auch MSSQL) kann man da Trigger einbauen, welche das machen..
 

Taramsis

Bekanntes Mitglied
Hi Leute,

vielleicht frage ich zu Kompliziert!
Ich mach mal ein Bsp.:
folgende Tabelle ist gegeben:
SQL:
Tabelle airportCenterSanFransisco
ID   destination 	flight_cost 	StartTime    Flag
1    Los Angeles 	1500€ 	        06:13        0
2    San Diego 	    250€ 	        07:13        0
3    Los Angeles 	500€ 	        08:13        0
4    Boston 	    700€ 	        09:13        0

Nun bestimme ich die Mindest Startzeit "minStart" durch:

Java:
for (int j = 0; j < listSize; j++) {
    for (int i = 1; i < listWidth; i++) {
        Date date = res2.getTime(choices[i-1] + ".TaskStart");
        if (date.before(minStart)) {
            minStart = date;
            
        }
        list[j][i] = minStart;
    }
    res2.next();
}

Wenn man sich nun vorstellt ich hätte zehn Flughäfen in San Fransico und dementsprechend zehn Tabellen wie oben, will ich , wenn er den "minStart" ermittelt den Flag der Zeile der gejointen Tabellen bei denen die z.B. ID=1 ist und "minStart" vorhanden ist auf 1 setzen!

Ich dachte an soetwas:
Java:
stmt2.executeUpdate("UPDATE modules." + choices[i-1] + " " +
                               "SET TaskProcessed = '1' " +
                               "WHERE " + choices[i-1] + ".TaskStart='" + minStart + "' ");
Klappt leider nicht ganz!
 

Taramsis

Bekanntes Mitglied
Es gibt keine Fehlermeldung, es steht keine 1 bei TaskProcessed unter der verwendeten minStart bzw. nirgendwo!
Wie sieht ein PreparedStatements aus?
 

Michael...

Top Contributor
So z.B.
Java:
PreparedStatement stmt = connection.prepareStatement("Update myTable Set TaskProcessed=? Where TastStart= ?");
stmt.setString(1, "1");
stmt.setDate(2, minStart);
stmt.executeUpdate();
 

Taramsis

Bekanntes Mitglied
sorry den Part verstehe ich nicht ganz:

Java:
stmt.setString(1, "1");
stmt.setDate(2, minStart);
stmt.executeUpdate();

In Sachen Datenbanken bin ich ne Nuss!:oops:
 

Michael...

Top Contributor
Zeile 1 erzeugt das PreparedStatement mit zwei Platzhaltern (=> ?)
Zeile 2 setzt den Inhalt für den ersten Platzhalter
Zeile 3 setzt den Inhalt für den zweiten Platzhalter
Zeile 4 führt das Statement aus
 

Taramsis

Bekanntes Mitglied
Hi,

ich versuch nun folgendes
SQL:
UPDATE airport SET flag=true WHERE start=(SELECT min(start) FROM airport);

auf meiner DB anzuwenden!
Ich habe eine DB "modules" hier habe ich drei Tabellen m1,m2,m3 und diese haben die gleiche Struktur. Ich joine per SQL die Tabellen:
Meine Tabellen sehen alle so aus:
TaskCommonDim|Resource|TaskStart|TaskEnd|Piority|TaskProcessed

TaskStart ist vom Typ Datetime und
"TaskProcessed" vom Typ int(1), d.h. es kann 0 oder 1 sein

SQL:
SELECT m1.TaskCommonDim, m1.TaskStart, m1.TaskProcessed, m2.TaskStart, m2.TaskProcessed, m3.TaskStart, m2.TaskProcessed
FROM m1 AS m1
JOIN m2 AS m2 ON ( m1.TaskCommonDim = m2.TaskCommonDim )
JOIN m3 AS m3 ON ( m1.TaskCommonDim = m3.TaskCommonDim )
WHERE m1.TaskProcessed = '0' AND m2.TaskProcessed = '0' AND m3.TaskProcessed = '0'
Wie kann ich meine Join-Anfrage mit der obigen Update-Anfrage kombinieren? Ich möchte praktisch die kleinste Startzeit aus allen Tabellen und dann "TaskProcessed" in der entsprechenden Zeile der gejointen Tabelle auf 1 setzen!
 

Taramsis

Bekanntes Mitglied
Hi Leute,
ich habe nun folgendes ausprobiert und es klappt!
SQL:
SELECT min(X.TaskStart)  FROM  
(    SELECT * FROM m1    
     UNION ALL    
     SELECT * FROM m2    
    UNION ALL    
    SELECT * FROM m3  
 ) AS X
 WHERE TaskProcessed = 0

Nun habe ich probleme dieses UPDATE noch einzu bauen. Ich dacht ich mach folgendes:

SQL:
UPDATE m1 SET TaskProcessed = true WHERE TaskStart =
(
  SELECT min(TaskStart)
  FROM
  (
    SELECT * FROM m1
    UNION ALL
    SELECT * FROM m2
    UNION ALL
    SELECT * FROM m3
  )
  WHERE TaskProcessed = 0
)

UPDATE m2 SET TaskProcessed = true WHERE TaskStart =
(
  SELECT min(TaskStart)
  FROM
  (
    SELECT * FROM m1
    UNION ALL
    SELECT * FROM m2
    UNION ALL
    SELECT * FROM m3
  )
  WHERE TaskProcessed = 0
)

UPDATE m3 SET TaskProcessed = true WHERE TaskStart =
(
  SELECT min(TaskStart)
  FROM
  (
  SELECT * FROM m1
  UNION ALL
  SELECT * FROM m2
  UNION ALL
  SELECT * FROM m3
  )
  WHERE TaskProcessed = 0
)
Ich weiß nicht recht wie ich die "Aliase"(AS X,..) setzen soll! Wenn ichs wie oben mache, also nur bei "min(TaskStart)" und z.B. X,Y,Z nutze, kommt folgende Meldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS X'
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
D Zweckmäßigkeit einer Schlüsseltabelle Datenbankprogrammierung 4
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Variable in main soll mit der generierten Zahl aus einer Methode ausgefüllt werden Datenbankprogrammierung 3
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
B Frage bei einer SQL Query Datenbankprogrammierung 3
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
J In einer bestimmten Spalte suchen mit Suchfeld (MS SQL) Datenbankprogrammierung 7
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
J Sql Anfrage nach einer Zeile beenden Datenbankprogrammierung 6
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
S Anmelden an einer msql datennbank Datenbankprogrammierung 1
F Auslesen einer .dbf-Datei, Zuordnung Index Datenbankprogrammierung 0
ralfb1105 Oracle Zwei ojdbc Driver in einer Applikation? Datenbankprogrammierung 13
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
Dimax MySQL 10 höchsten Werte aus einer Tabelle ermitteln Datenbankprogrammierung 30
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19
temi Wie kann ich "Class" in einer DB speichern? Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
I Oracle Wie ermitteln, welche Benutzer-(!)Tabellen in einer DB sind? Datenbankprogrammierung 1
DaCrazyJavaExpert Derby/JavaDB Wert einer Variable in der Datenbank direkt auf 1 setzten. Datenbankprogrammierung 71
D MySQL Suche nach Max Value in einer Tabelle Datenbankprogrammierung 7
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
F Java Objekte in einer Datenbank speichern Datenbankprogrammierung 4
MrSnake Hilfe bei erstellen einer DB Datenbankprogrammierung 12
M Wie übergebe ich Datenbankobjekte aus einer sql-Datenbank einer Java Klasse bzw. Instanz Datenbankprogrammierung 7
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
E Wie kann man mit einer ID-Spalte über eine Parameterübergabe auf eine Seite verweisen? Datenbankprogrammierung 17
E Warum funktioniert das Erzeugen einer View nicht? Datenbankprogrammierung 1
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
E Was sind die Vorteile von DB2 im Gegensatz zu einer Oracle-Datenbank? Datenbankprogrammierung 5
E Wie geschieht der konzeptueller Entwurf einer Datenbank Datenbankprogrammierung 1
I SQLite Objekt speichern einer Serialisierter Klasse Datenbankprogrammierung 1
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
I Inhalt einer hsqldb anzeigen Datenbankprogrammierung 1
J Realisierung einer DB in Combi mit Java Datenbankprogrammierung 13
Androbin [Serializing] Mehrere Objekte in einer einzigen Datei speichern Datenbankprogrammierung 1
S Auswahl einer Datenbank Datenbankprogrammierung 0
M Derby/JavaDB Speicherplatz einer Zeile bestimmen Datenbankprogrammierung 0
P JPA in einer größeren Java SE Anwendung Datenbankprogrammierung 0
R MySQL Blob aus DB auslesen und einer Tabelle ausgeben Datenbankprogrammierung 7
C H2 Syntax fehler beim erstellen einer Tabelle Datenbankprogrammierung 4
L MySQL Uhrzeit-Format innerhalb einer Tabelle Datenbankprogrammierung 8
2 MySQL Daten aus einer Array auslesen und MySQL Statment erstellen. Datenbankprogrammierung 5
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
E Daten einer SQL-Datenbank aus Combobox in labels schreiben Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
L Datenbankabfrage mit einer Range Datenbankprogrammierung 3
S Anbindung einer Datenbank an Java Datenbankprogrammierung 7
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
eskimo328 Datenbankverbindung ohne Passwort im Quelltext bei einer offline Anwendung Datenbankprogrammierung 14
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
D Sperrverfahren in einer Datenbank Datenbankprogrammierung 6
B Feld in einer @Entity als Text speichern Datenbankprogrammierung 5
G Oracle Hibernate M:N-Beziehung mit nur einer vorhandenen Tabelle Datenbankprogrammierung 5
M MySQL Auto-Increment einer custom formatted id? Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
M DB: Mehrere Zeilen in einer Zeile zusammenführen Datenbankprogrammierung 10
D Probleme bei der Erzeugung einer Tabelle Datenbankprogrammierung 15
D Frage zu potenziellen Leerzeichen in einer Datenbank Datenbankprogrammierung 5
H datantyp einer variable ermittel mit sql Datenbankprogrammierung 3
I Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert Datenbankprogrammierung 10
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
S Wie überprüfe ich ob die Instanz einer Connection gerade werwendet wird? Datenbankprogrammierung 4
M Ausgabe der Rows mit höchstem Wert X einer Gruppe y,z ? Datenbankprogrammierung 2
L Derby/JavaDB Fehler beim Erstellen einer Tabelle Datenbankprogrammierung 2
turmaline [Hibernate] @OneToOne: Löschen einer referenzierten Instanz Datenbankprogrammierung 2
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
B Aktuellen Stand der Datensätze einer Datenbank anzeigen Datenbankprogrammierung 9
B Die Anzahl der Datensaetze einer Datenbank anzeigen Datenbankprogrammierung 2
T Ablage von Benutzereinstellungen in einer DB Datenbankprogrammierung 7
T Inhalt einer Datenbanktabelle autom. in XML ausgeben Datenbankprogrammierung 7
M Oracle Probleme mit dem anbinden einer Oracle 10g Datenbank Datenbankprogrammierung 27
B MySQL Row und ColumnIndex aus einer JTable (mysqlDb) selectieren Datenbankprogrammierung 18
C Hibernate Liste mit allen Objekten einer Entity Datenbankprogrammierung 17
M Sinnvoller Entwurf einer Java DB-Anwendung Datenbankprogrammierung 2
E MySQL Befüllen einer MySQL DB mit großen Daten Datenbankprogrammierung 6
Airwolf89 Spaltennamen einer Tabelle zurückgeben lassen Datenbankprogrammierung 9
1 Aufruf einer View über Java Gui Datenbankprogrammierung 5
J Mit einer Abfrage Worte suchen die in Zwei Tabellen enthalten sind Datenbankprogrammierung 5
M FindBugs und PreparedStatement aus einer Datei lesen Datenbankprogrammierung 11
M Bitte um Hilfe bei Wahl einer Datenbank Datenbankprogrammierung 3
J zufällige Auswahl aus einer Tabelle Datenbankprogrammierung 4
F Problem mit einer Sql Index Datenbankprogrammierung 2
Joy jdbcodbc brücke - einbinden einer Datenbank in Java Datenbankprogrammierung 4
S Daten einer Tabelle vergleichen und ggs neuen Wert einfügen Datenbankprogrammierung 8
T Spalten einer SQL-Anfrage vorhersagen Datenbankprogrammierung 6
X Daten einer DatenbankTabelle in JTable darstellen Datenbankprogrammierung 13
A Datenbankverbindung mit einer Datenbank auf einem Webspace Datenbankprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben