私は2つのテーブルを持っています
junk=# select * from t;
name | intval
----------+--------
bar2 | 2
bar3 | 3
bar4 | 4
(3 rows)
と
junk=# select * from temp;
id | name | intval
----+------------+--------
1 | foo | 0
2 | foo2 | 2
3 | foo3 | 3
4 | foo4 | 4
5 | foo5 | 5
(5 rows)
ここで、からの値を使用して、の値table t
を更新しますtable temp
。基本的に、tempの2番目、3番目、4番目の値の名前列をbar2、bar3、bar4に置き換えたいと思います。
COPYステートメントを使用してテーブルtを作成しました。私はバッチ更新を行っており、それを最適化しようとしています。
したがって、このエラーが発生します。これはかなり基本的なものだと思います。
junk=# UPDATE temp FROM t SET name=t.name FROM t WHERE intval=t.intval;
ERROR: syntax error at or near "FROM"
LINE 1: UPDATE temp FROM t SET name=t.name FROM t WHERE intval=t.int...
^
junk=#
さて、これは機能します。
UPDATE test SET name=t.name FROM t WHERE test.intval=t.intval