उदाहरण:क्या इंसर्ट रिटर्निंग "सही" ऑर्डर में चीजों को वापस करने की गारंटी है?
create table foo(
id serial,
txt text
);
insert into foo(txt) values ('a'),('b'),('c') returning id;
रिटर्न:
id
----
1
2
3
(3 rows)
यह लगता कि पहले वापसी मान में id
हमेशा 'a'
के लिए id
हो जाएगा, 'b'
और इतने पर के लिए दूसरा, लेकिन क्या यह परिभाषित व्यवहार insert into
है, या यह एक संयोग है जो अजीब परिस्थितियों में विफल हो सकता है?
मुझे पता है कि संबंध अनियंत्रित हैं, लेकिन मुझे यकीन नहीं था कि 'मूल्य' भाग को संबंध या सूची के रूप में मॉडलिंग किया जाना चाहिए :) मुझे उम्मीद थी कि यह एक विशेष मामला हो सकता है, क्योंकि (ऑर्डर- स्वतंत्र) वैकल्पिक 'foo (txt) मानों में डालें (' ए '), (' बी '), (' सी ') लौटने (txt, id)' हल्के से अपमानजनक लगता है (अनुमान है कि मैं समय से पहले अनुकूलन कर रहा हूं ...) – FunctorSalad
@FunctorSalad: 'मानों 'को शायद एक सूची के रूप में माना जाता है लेकिन मुझे इसे कहीं भी गारंटी नहीं दिखाई देती है।और यदि 'रिटर्निंग' से ऑर्डर से निपटना आपकी प्रदर्शन बोतल गर्दन है तो आप शायद ठीक कर रहे हैं :) –
सहमत हैं, * बिल्कुल * इस पर भरोसा न करें। PostgreSQL इनपुट को सॉर्ट करने के अपने अधिकारों के भीतर अच्छी तरह से है, हालांकि परिणामस्वरूप सर्वश्रेष्ठ डालने का प्रदर्शन होगा, और अगर इंडेक्स-संगठित टेबल कभी लागू किए जाते हैं, तो शायद यह होगा। –