PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Oracle MERGE स्टेटमेंट को PostgreSQL UPSERT स्टेटमेंट में माइग्रेट करना

मुझे नहीं लगता कि PostgreSQL 9.3 में UPSERT स्टेटमेंट है, लेकिन आप यह कर सकते हैं:

with cte_dual as (
    select
        v_c1 as key,
        v_c2 as pkey,
        v_c3 as wcount,
        v_c4 as dcount
), cte_update as (
    update my_table as a set
        wcount = b.wcount,
        dcount = b.dcount
    from cte_dual as b
    where b.key = a.key and b.pkey = a.pkey
    returning *
)
insert into my_table (key, pkey, wcount, dcount)
select d.key, d.pkey, d.wcount, d.dcount
from cte_dual as d
where not exists (select * from cte_update as u WHERE u.key = d.key and u.pkey = d.pkey)

आप कुछ इसी तरह के प्रश्न पढ़ सकते हैं:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज से हरोकू एसक्यूएल लॉग को कैसे बंद करें

  2. Django - (ऑपरेशनल एरर) FATAL:उपयोगकर्ता उपयोगकर्ता नाम के लिए पहचान प्रमाणीकरण विफल रहा

  3. Django को SQLite से PostgreSQL में कनवर्ट करना

  4. विंडोज़ पर PHP और PostgreSQL कॉन्फ़िगर करें

  5. मूल्यों के प्रति समूह कस्टम सीरियल / ऑटोइनक्रिकमेंट