यदि आप यह सब एक ही कथन में चाहते हैं, तो आप सीटीई का उपयोग कर सकते हैं:
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सीटीई में। यह सामान्य उपयोग का मामला है -- उदाहरण के लिए, आप एक इंसर्ट से सीरियल आईडी वापस प्राप्त कर सकते हैं।