【发布时间】:2017-07-12 21:00:43
【问题描述】:
所以我面临以下问题。我正在使用python进行一些计算。这些计算的结果是一组唯一值。现在我想在不使用循环的情况下将这些值添加到 PostgreSQL 表中。一个简单的例子:
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-01”。 结果:
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 中?
-
确实是一个解决方案,但我只需要将值添加到现有表中,而无需更改任何其他内容。
标签: python sql postgresql