यदि आप यह सब एक ही कथन में चाहते हैं, तो आप सीटीई का उपयोग कर सकते हैं:
with foo as (
select * from ...
),
b as (
insert into bar
select * from foo
returning *
)
insert into baz
select * from foo;
नोट:
- आपको
insert
के साथ कॉलम सूचियां शामिल करनी चाहिए । - आपको कॉलम नाम स्पष्ट रूप से निर्दिष्ट करना चाहिए
select *
. के लिए . यह महत्वपूर्ण है क्योंकि कॉलम दो तालिकाओं में मेल नहीं खा सकते हैं। - मैं हमेशा
returning
का उपयोग करता हूंupdate
के साथ /insert
/delete
सीटीई में। यह सामान्य उपयोग का मामला है -- उदाहरण के लिए, आप एक इंसर्ट से सीरियल आईडी वापस प्राप्त कर सकते हैं।