Я пытаюсь запустить обновление в таблице из 10 строк (olddb.People) из другой таблицы из 10 строк (newdb.Peeps).Обновление Sqlite3 Вставляет значения одной строки для целевой таблицы
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
Как вы можете видеть, все строки olddb.People обновляются значениями из первой строки newdb.Peeps.
Мое намерение состоит в том, чтобы обновлять каждую строку в olddb.People со значениями из соответствующих строк в newdb.Peeps, используя первое значение (unix) строки.
Благодарим за помощь.
Это было. Благодарим вас за своевременный ответ. Должен ли я изменить название на [SOLVED] или что-нибудь подобное? –
Не оставляйте это как есть. Поскольку вы приняли ответ, он неявно разрешен и отображается как таковой. –