所以我面臨以下問題。我使用Python來做一些計算。這些計算的結果是一系列獨特的值。現在我想在不使用循環的情況下將這些值添加到PostgreSQL表中。一個簡單的例子:使用where語句一次更新具有不同值的多行
在Python的計算結果:
[1.2, 2.4, 3.6, 4.8]
PostgreSQL表:
example_table
id | date | values
-------------------------
1 | 2016-11-01 |
2 | 2016-11-01 |
3 | 2016-11-01 |
4 | 2016-11-01 |
5 | 2017-11-01 |
6 | 2017-11-01 |
笏我要實現是於上述值添加到「值」列中表格其中日期爲'2016-11-01'。數組的長度始終與選定的表相同。結果示例:
example_table
id | date | values
-------------------------
1 | 2016-11-01 | 1.2
2 | 2016-11-01 | 2.4
3 | 2016-11-01 | 3.6
4 | 2016-11-01 | 4.8
5 | 2017-11-01 |
6 | 2017-11-01 |
這應該也適用於此場景; 蟒數組:
[1.2, 2,4]
然後上述值添加到「值」列在表中,其中日期是「2017年11月1日」。 結果:
example_table
id | date | values
-------------------------
1 | 2016-11-01 |
2 | 2016-11-01 |
3 | 2016-11-01 |
4 | 2016-11-01 |
5 | 2017-11-01 | 1.2
6 | 2017-11-01 | 2.4
我試過到目前爲止是:
INSERT INTO example_table (values) VALUES ('1.2'), ('2.4'), ('3.6'), ('4.8')
其中一期工程,但我不能添加一個WHERE語句INSERT INTO不支持這一點。 使用UPDATE時,我要麼將整個數組添加到每一行,要麼將第一個值添加到每行,而不是每行的值數組。我無法將值鏈接到ID,但值的順序始終與選定行的順序相同。
這似乎是一個相當簡單和基本的操作,但我沒有得到它的正常工作。如何使用WHERE語句一次性將這個值的數組添加到列中?我通過Python發送SQL請求。
是否'id'總是反映在數組中值的位置? –
您是否嘗試將數據(id和日期)從SQL移動到python,將它加入到那裏,然後在SQL中將它作爲新表插入? – WJS
確實可以是一個解決方案,但我需要只將值添加到現有的表,而不更改其他任何東西。 – cf2