Ich versuche, ein Update für eine 10-zeilige Tabelle (olddb.People) aus einer anderen 10-Zeilentabelle (newdb.Peeps) auszuführen.Sqlite3 Update Fügt die Werte einer einzelnen Zeile für die Zieltabelle ein
sqlite> ATTACH DATABASE 'D:/tutorial2.db' AS olddb;
sqlite> ATTACH DATABASE ':memory:' as newdb;
sqlite> CREATE TABLE IF NOT EXISTS newdb.Peeps(unix INT, datestamp INT, value INT);
sqlite> INSERT INTO newdb.Peeps SELECT * FROM olddb.People;
sqlite> UPDATE newdb.Peeps SET datestamp = 20, value = 45 WHERE unix = 10;
sqlite> UPDATE newdb.Peeps SET datestamp = 20, value = 45 WHERE unix = 14;
sqlite> SELECT * FROM olddb.People;
10|150|5
11|165|5.5
12|180|6
13|195|6.5
14|210|7
15|225|7.5
16|240|8
17|255|8.5
18|270|9
19|285|9.5
sqlite> SELECT * FROM newdb.Peeps;
10|20|45
11|165|5.5
12|180|6
13|195|6.5
14|20|45
15|225|7.5
16|240|8
17|255|8.5
18|270|9
19|285|9.5
sqlite> UPDATE olddb.People SET datestamp = (SELECT datestamp FROM newdb.Peeps WHERE unix = newdb.Peeps.unix), value = (SELECT value from newdb.Peeps WHERE unix = newdb.Peeps.unix);
sqlite> SELECT * FROM olddb.People;
10|20|45
11|20|45
12|20|45
13|20|45
14|20|45
15|20|45
16|20|45
17|20|45
18|20|45
19|20|45
sqlite> SELECT * FROM newdb.Peeps;
10|20|45
11|165|5.5
12|180|6
13|195|6.5
14|20|45
15|225|7.5
16|240|8
17|255|8.5
18|270|9
19|285|9.5
Wie Sie alle Zeilen von olddb.People sehen können, sind mit den Werten aus der ersten Reihe von newdb.Peeps aktualisiert.
Meine Absicht ist es, jede Zeile in Olddb.People mit den Werten aus den entsprechenden Zeilen in Newdb.Peeps mit dem ersten Wert (Unix) der Zeile zu aktualisieren.
Vielen Dank für Ihre Hilfe.
Das war es. Danke für die rechtzeitige Antwort. Soll ich den Titel zu [Gelöst] oder etwas Ähnliches ändern? –
Nein, lass es so wie es ist. Wenn Sie eine Antwort akzeptiert haben, wird sie implizit als solche gelöst und angezeigt. –