【发布时间】:2021-08-03 12:01:06
【问题描述】:
我的 MariaDB 中有一个非常简单的表 - 3 列:
- DT 为 PK
- 节省
- kpd
我希望能够在表中一次插入大量对象。这是一段数据的外观:
[ { date: '2021-03-01T05:55:00.000Z', kpdValue: 0, savings: 0 },
{ date: '2021-03-01T06:00:00.000Z', kpdValue: 0, savings: 0 },
{ date: '2021-03-01T06:05:00.000Z', kpdValue: 0, savings: 0 },
{ date: '2021-03-01T06:10:00.000Z', kpdValue: 0, savings: 0 },
{ date: '2021-03-01T06:15:00.000Z', kpdValue: 0, savings: 0 },
......
]
我可以多次接收具有相同 PK 的数据,其想法是当新数据中存在具有相同 PK 的新数据时 - 替换它。
在示例屏幕截图中,我的 PK DT 值为 2021-02-11 15:45:00。我设法创建了一个查询,它正在检查它是否存在,如果存在则替换它,如果不存在则创建它:
INSERT INTO savingswest (DT,Saving,kpd)
VALUES ('2021-02-11 15:45:00','4.4','1.4')
ON DUPLICATE KEY UPDATE Saving='20.5',dt='2021-02-11 15:45:00',kpd='1.9';
如何使用收到的数组执行此过程?
我正在使用 Node.js。
【问题讨论】:
-
好吧,您将不得不在输入中编写一个循环,其中包含该查询:)
-
我也是这么想的,但数组包含 8,000 个元素。这是唯一可能的解决方案吗?
标签: mysql node.js mariadb insert-update