私は次の設定をしています:
表1:
latdouble
3
4
5
1
6
2
6
9
表 2:
time latdouble(type double) latvarchar(type varchar)
2:00 3
3:00 4
4:00 5
5:00 1
6:00 6
7:00 2
8:00 6
9:00 9
基本的に、Table1 の latdouble は正しい順序であり、値をそのまま Table2 にコピーしたいと思います。結果は次のようになります。
表 2:
time latdouble(type double) latvarchar(type varchar)
2:00 3 3
3:00 4 4
4:00 5 5
5:00 1 1
6:00 6 6
7:00 2 2
8:00 6 6
9:00 9 9
私の知る限り、次のようなコマンドを使用する必要があります。
update Table2 set latdouble = (select latdouble from Table1)
ただし、次のエラーが表示されます。
ERROR: more than one row returned by a subquery used as an expression
簡単な修正があると確信していますが、理解できません。
ありがとう、ジェームズ
更新: これがどのように発生したかを説明しましょう。表 2 はもともと次のようになっていました。
表 2:
time latvarchar(type varchar)
2:00 3
3:00 4
4:00 5
5:00 1
6:00 6
7:00 2
8:00 6
9:00 9
Table2 に latdouble(type double) 列を追加しました。
次に、latdouble(type double) という列を含む Table1 という新しいテーブルを作成しました。次のコマンドを使用して、Table2 から latvarchar をキャストし、それを Table1 にコピーしました。
insert into Table1 (latdouble) select cast(latvarchar as double precision) from Table2
そして今、値を Table1 latdouble から Table2 latdouble にコピーしたいと思います。これを行った理由は、値を latvarchar から double にキャストし、いくつかのインデックスを持つ非常に大きなテーブルであるため、Table2 全体の一時コピーを作成せずに latdouble に保存するためです。