हाँ, 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
यदि पंक्ति मौजूद नहीं है तो यह सम्मिलित किए गए किसी अन्य मौजूदा को वापस कर देगी।
बीटीडब्लू, यदि जोड़ी "कुंजी"/"मान" इसे अद्वितीय बनाती है तो यह प्राथमिक कुंजी है, और आईडी कॉलम की कोई आवश्यकता नहीं है। जब तक एक या दोनों "कुंजी"/"मान" जोड़ी शून्य नहीं हो सकती।