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

यदि मौजूद नहीं है तो डालें, अन्यथा पोस्टग्रेस्क्ल में आईडी लौटाएं

हाँ, returning है

INSERT INTO tag ("key", "value")
SELECT 'key1', 'value1'
WHERE NOT EXISTS (
    SELECT id, "key", "value"
    FROM node_tag
    WHERE key = 'key1' AND value = 'value1'
    )
returning id, "key", "value"

यदि पंक्ति पहले से मौजूद है तो उसे वापस करने के लिए

with s as (
    select id, "key", "value"
    from tag
    where key = 'key1' and value = 'value1'
), i as (
    insert into tag ("key", "value")
    select 'key1', 'value1'
    where not exists (select 1 from s)
    returning id, "key", "value"
)
select id, "key", "value"
from i
union all
select id, "key", "value"
from s

यदि पंक्ति मौजूद नहीं है तो यह सम्मिलित किए गए किसी अन्य मौजूदा को वापस कर देगी।

बीटीडब्लू, यदि जोड़ी "कुंजी"/"मान" इसे अद्वितीय बनाती है तो यह प्राथमिक कुंजी है, और आईडी कॉलम की कोई आवश्यकता नहीं है। जब तक एक या दोनों "कुंजी"/"मान" जोड़ी शून्य नहीं हो सकती।



  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. PostgreSQL में अग्रणी शून्य जोड़ने के 2 तरीके

  3. प्रमाणीकरण प्रकार 10 के कारण पोस्टग्रेज़ डीबी से कनेक्ट करने में असमर्थ समर्थित नहीं है

  4. PostgreSQL शीर्ष शिक्षण और प्रशिक्षण संसाधन

  5. डॉकर - पोस्टग्रेज कंटेनर में psql कमांड कैसे चला सकता है?