PSQL typeorm upsert 以及更新位置

问题描述 投票:0回答:1

如何制作如下所示的 typeorm 查询命令

INSERT INTO t1 (id, data, createdAt)  
VALUES 
(1, 'data3', '2022-01-03'), 
(2, 'data3', '2022-01-02')  
ON CONFLICT (id) DO UPDATE SET  
  data = CASE  
           WHEN EXCLUDED.createdAt > t1.createdAt THEN EXCLUDED.data  
           ELSE t1.data  
         END,  
  createdAt = CASE  
             WHEN EXCLUDED.createdAt > t1.createdAt THEN EXCLUDED.createdAt  
             ELSE t1.createdAt  
           END;  

目标是更新插入数据,但仅当createdAt > 之前才更新,否则忽略

使用2个查询也可以做到同样的效果,但可能不是强一致性

typeorm psql
1个回答
0
投票

TypeORM 还提供对原始查询的支持。如果需要,您可以使用原始查询或查询生成器。这是 docs 中的一个示例,它解决了同类问题

© www.soinside.com 2019 - 2024. All rights reserved.