- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 df 中有类似的数据
我需要将其更新为时间刻度数据库,其中时间是唯一键,我已经使用过
list_db_df=df.values.tolist()
现在这变成了一个值列表,例如
[[2.13,India,Good],[2.34,USA,Good]]
我该如何编写这样的插入查询,
INSERT INTO table_name
VALUES
(NOW(), 'office', 70.0, 50.0),
(NOW(), 'basement', 66.5, 60.0),
(NOW(), 'garage', 77.0, 65.2);
基本上是这种格式
https://docs.timescale.com/timescaledb/latest/how-to-guides/write-data/insert/#insert
需要关于冲突条款的帮助(Example)
INSERT INTO table_name
VALUES ('2017-07-28 11:42:42.846621+00', 'office', 70.2, 50.1)
ON CONFLICT (time, location) DO UPDATE
SET temperature = excluded.temperature,
humidity = excluded.humidity;
例如,excluded.temperature 是什么。
提前致谢。
最佳答案
引自docs
The SET and WHERE clauses in ON CONFLICT DO UPDATE have access to the existing row using the table's name (or an alias), and to rows proposed for insertion using the special excluded table.
在您的示例中,excluded.temperature
具有值 70.2
另见 DbFiddle example :
假设,表中已经有一行包含此主键('2017-07-28 11:42:42.846621+00'
、office
):
现在我们执行插入语句(具有相同的主键)和不同的ON CONFLICT
子句
ON CONFLICT
子句INSERT INTO conditions VALUES ('2017-07-28 11:42:42.846621+00', 'office', 70.2, 50.1)
当我们不使用ON CONFLICT
时,我们得到一个错误:
ERROR: duplicate key value violates unique constraint "conditions_time_location_key"
DETAIL: Key ("time", location)=(2017-07-28 12:42:42.846621+01, office) already exists.
INSERT INTO conditions
VALUES ('2017-07-28 11:42:42.846621+00', 'office', 70.2, 50.1)
ON CONFLICT DO NOTHING
在这种情况下,新数据被忽略并且该行与以前相同:
例子:
INSERT INTO conditions
VALUES ('2017-07-28 11:42:42.846621+00', 'office', 70.2, 50.1)
ON CONFLICT (time, location) DO UPDATE
SET humidity = excluded.temperature;
将导致:
注意:我们分配 humidity
至 excluded.temperature
- 这在生产应用程序中没有真正意义,仅用于说明其工作原理
当我们使用 ON CONFLICT DO UPDATE
, 我们可以访问一个名为 exclude
的特殊表.该表包含我们的插入语句中已排除(即忽略)的值,因为其他值已经存在。
在我们的例子中:
excluded.temperature
是70.2
excluded.humidity
是50.1
当你没用的时候SET
对于列,该列保留旧值:即 temperature
仍将是 60.1
在我们的插入语句之后。
当你使用 SET
时对于列,您可以分配任何您喜欢的值:例如常数值、表达式或来自特殊 excluded
的值包含排除行的表。
关于python - 如何在 python 中为 postgresql 创建具有多个值的插入查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71764963/
我是一名优秀的程序员,十分优秀!