Update mehrere Objekte in einer SL Anweisung

Plutarch 98

Neuer Benutzer
Beiträge
2
Hi Zusammen,

ich habe ein sehr einfache Frage aber finde dazu leider keine Antwort.

Folgende Tabelle:
Screenshot_4.png

Aufgabe: Ändern des KM_Stand für FA_NR 2 und 3 auf je 200 Km in nur einer SQL Anweisung.

Mein Vorschlag:

UPDATE Mietfahrzeuge SET KM_Stand = 200
WHERE FA_NR = 2 OR FA_NR = 3;

Das funktioniert aber nicht, bei dem Where muss ein Fehler vorliegen.
Kann mir einer helfen bitte? Ich finde da wirklich nichts zu.

Viele Grüße
 
Werbung:
meine Glaskugel meint:

Code:
postgres=# create table plutarch98 ("FA_NR" int primary key, "KM_Stand" int);
CREATE TABLE
postgres=# insert into plutarch98 values (1,1);
INSERT 0 1
postgres=# insert into plutarch98 values (2,1);
INSERT 0 1
postgres=# insert into plutarch98 values (3,1);
INSERT 0 1
postgres=# insert into plutarch98 values (4,1);
INSERT 0 1
postgres=# UPDATE plutarch98 SET KM_Stand = 200 WHERE FA_NR = 2 OR FA_NR = 3;
ERROR:  column "fa_nr" does not exist
LINE 1: UPDATE plutarch98 SET KM_Stand = 200 WHERE FA_NR = 2 OR FA_N...
                                                   ^
postgres=#

Kommt das halbwegs hin als Fehlermeldung?
 
Hi

moment glaube ihr versteht mich falsch. Danke aber schonmal für eure Überlegungen.
Es kommt keine Fehlermeldung sondern das Ergebnis das ich erwarte erscheint nicht.

Ich verwende offensichtlich die falsche Formel für das was ich vorhabe.

Habt ihr eine Idee was ich verwenden kann?

Ich will quasi für den BMW und den Golf in einer Anweisung die KM Menge ändern auf 200.

Vielen liebem Dank und viele Grüsse
 
nun denn ...

Code:
postgres=# UPDATE plutarch98 SET "KM_Stand" = 200 WHERE "FA_NR" = 2 OR "FA_NR" = 3;
UPDATE 2
postgres=# select * from plutarch98 ;
 FA_NR | KM_Stand 
-------+----------
     1 |        1
     4 |        1
     2 |      200
     3 |      200
(4 rows)

postgres=#

Vielleicht kann MySQL sowas gar nicht? Wer weiß. Nachvollziehbar ist Dein Bild ja für niemanden...
 
Dann poliere ich mal meine Glaskugel und frage sicherheitshalber, ob Du eine DBMS verwendest, dass eine Transaktionssicherung verwendet. Du weist es nicht? Dann tipp einfach mal ein Commit, wenn dann die Daten da sind, verwendest Du tatsächlich Transaktionen.
 
Werbung:
Es kommt keine Fehlermeldung sondern das Ergebnis das ich erwarte erscheint nicht.
Es gibt verschiedene Möglichkeiten, die zu dem Phänomen führen können, dass "das Ergebnis nicht erscheint".
Das Update, das Du zeigst, führt nur die Änderung durch, es sorft für nicht die (erneute) Anzeige der Daten.
Du verwendest für Update und Anzeige verschiedene Systeme. Fehlt das Commit, sieht nur das Update System die Änderung. (Wurde schon genannt)
Die Tabelle, die Du zur Anzeige nutzt, ist nicht die, die Du updatest. Es liegt mglw. eine kopierte Tabelle vor oder sogar unterschiedliche DB.
Stammt Deine Anzeige aus einem (selbstgeschriebenen) Browser basierten Tool, spielt Dir die Seitenaktualisierung vielleicht ein Streich. Probiere F5 oder STRNG F5.
Das Update, das Du zeigst, ist nicht das Update, was wirklich ausgeführt wird, sondern nur eines, das Du vermutest. Baust Du das Update mit PHP oder schreibst Du es so in ein DB Tool?
Wenn das Update über (d)ein Programm ausgeführt wird, welche Fehlerbehandlung gibt es in dem Programm und welches Feedback?
Wahrscheinlich gibt es noch mehr solcher Möglichkeiten.

Du kannst Dir und anderen das Leben leichter machen, in dem Du konsequent mit einem Tool arbeitest, das ohne Schnickschnack seinen Zweck erfüllt. Die einfachste und sicherste Variante ist die Standard Installation des DB Client, der meist bei der DB Installation mitgeliefert wird. Hier sehr wahrscheinlich ein Tool namens mysql.exe oder die entsprechende Linux Variante.

Alle Befehle zeigen hier bei Ausführung, was sie gemacht haben. Für Dich interessant, die Antwort z.B. auf den Update Befehl. Es wird die Anzahl der betroffenen Zeilen angezeigt. 0? 2? 5? Je nach Rückgabe (die Du hier auch nennen könntest), kommen einige meiner Vorschläge in Frage und einige nicht.
 
Zurück
Oben