0
別の10行のテーブル(newdb.Peeps)から10行のテーブル(olddb.People)で更新を実行しようとしています。Sqlite3 Updateターゲットテーブルの単一行の値を挿入します
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.Peepの最初の行の値で更新されます。
私の意図は、行の最初の値(unix)を使って、newdb.Peeps内の対応する行の値でolddb.Peopleの各行を更新することです。
ありがとうございました。
それでした。適時の対応をありがとう。タイトルを[SOLVED]などに変更する必要がありますか? –
現状のままにすることはできません。あなたが答えを受け入れたので、それは暗黙のうちに解決され、そのまま表示されます。 –