[英]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.