簡體   English   中英

將Oracle SQL移植到PostgreSQL-合並

[英]Porting Oracle SQL to PostgreSQL - MERGE INTO

這些天,我主要要做的是將Oracle SQL數據庫轉換為PostgreSQL(9.1.6)數據庫。

我傾向於遇到的最常見問題如下:

1. decode --> case when
2. nvl --> coalesce
3. (+) --> outer join
4. connect by prior --> connectby function with tablefunc contrib module.
5. merge into --> ???
etc...

我目前正在瀏覽PostgreSQL手冊,而且很有趣,似乎沒有MERGE INTO語句(或它的任何直接替代品)。

我知道PL / pgSQL可以用作替代方法,但這對我來說意味着很多額外的工作量。 我有什么想念的嗎?

沒有簡單的替換方法,對於9.1肯定沒有。

最好的選擇是升級到9.2並查看可寫的CTE。 這些允許您以類似方式進行多階段寫入操作。 例如,您可以:

WITH up (UPDATE foo set bar = 'baz' where id > 1000
         returning id)
INSERT INTO foo(id, bar) 
SELECT s, 'baz'
  FROM generate_sequence(1001, 10000) s
 WHERE s NOT IN (select id from up);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM