【发布时间】:2019-12-12 06:54:45
【问题描述】:
我正在尝试将所有照片 url 放入一个数组中,并将该数组设置为另一个表中的新列。这些表具有一对多的关系。我的 list_reviews 表中有大约 100 万行和大约 300 万张照片。
有没有办法分批做到这一点?当我尝试一次性完成所有操作时,我得到了空数组。
https://www.postgresql.org/message-id/20051219121211.002f7e87.gry@ll.mit.edu 和 Postgresql select rows(a result) as array
如果我一次只做一个,那么这些工作。我一直在考虑尝试使用此处找到的 STREAMING,https://github.com/vitaly-t/pg-promise/wiki/Learn-by-Example#into-database,但不确定我是否完全理解这里发生的事情。
CREATE TABLE list_reviews (
id SERIAL PRIMARY KEY,
product_id INT,
photos TEXT[]);
CREATE TABLE review_photos (
id SERIAL,
review_id INT REFERENCES list_reviews(id) ON DELETE CASCADE,
url TEXT);
UPDATE list_reviews SET photos = array(
SELECT url
FROM review_photos
WHERE review_photos.id = list_reviews.id
AND list_reviews.id = 5);
list_reviews 看起来像:
+----+------------+--------+--+
| id | product_id | photos | |
+----+------------+--------+--+
| 5 | 1 | [] | |
+----+------------+--------+--+
review_photos 看起来像:
+----+-----------+------------+--+
| id | review_id | photos | |
+----+-----------+------------+--+
| 1 | 5 | something1 | |
| 2 | 5 | something2 | |
| 3 | 5 | something3 | |
+----+-----------+------------+--+
并且希望看到 list_reviews:
+----+------------+--------------------------------------+--+
| id | product_id | photos | |
+----+------------+--------------------------------------+--+
| 5 | 1 | [something1, something2, something3] | |
+----+------------+--------------------------------------+--+
【问题讨论】:
标签: sql node.js postgresql pg-promise