0
PostgreSQLを初めて使用しています。 Psycopg2とPostgreSQL 9.5.6を使用しています。私の更新SQLは今のように見えます。 Psycopg2を使用して、複数の列をPythonのタプルリストで更新したいとします。複数の列をPythonのタプルのリストで置き換えるPsygopg2
update_sql = '''
UPDATE my_table
SET size = n, mean = m, std_pop = std
FROM unnest(%s) s(my_id integer, n integer, m double precision, std double precision)
WHERE my_table.id = s.my_id;
'''
は例えば、私はPythonでタプル(ID、new_size、new_mean、new_std)の次のPythonリストを持っている:私は、テーブルに入れ、すべての3つの列を更新したい
new_column_values =[(0,10,9.0,8.0),(1,10,9.0,8.0),(2,10,9.0,8.0)]
同時に:
+----+------+------+---------+
| id | size | mean | std_pop |
+----+------+------+---------+
| 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 |
+----+------+------+---------+
これは、複数の列を更新する最もよい方法でしょうか?今すぐエラーを返します:
倍精度を期待していますが、解決方法はわからない数値型があります。私のの平均値はとです。std_popの列は倍精度の列です。何が起きてる?
関連するPythonコードを投稿してください。 –
@ClodoaldoNeto Pythonコードには多くの依存関係がありますが、実際にどのように解決するかを考えます。私は単に '倍精度'を '数値'に置き換えますが、それは私がそれらの列を「倍精度」として宣言したため、私には直感的ではありません。 – Dobob