संग्रहीत प्रक्रिया में एक नया गाइड कैसे उत्पन्न करें?


93

मेरे पास वर्तमान में एक संग्रहीत प्रक्रिया है जिसमें मैं एक तालिका में नई पंक्तियाँ सम्मिलित करना चाहता हूं।

insert into cars
(id, Make, Model)
values('A new Guid', "Ford", "Mustang")

तो प्राथमिक कुंजी 'आईडी' एक गाइड है। मुझे पता है कि C # कोड में एक नया गाइड कैसे बनाया जा सकता है, लेकिन संग्रहीत कार्यविधि के भीतर मैं प्राथमिक कुंजी मानों के लिए नए Guids कैसे जनरेट करता हूं, इसके बारे में अनिश्चित हूं।

जवाबों:


178

SQL सर्वर के साथ आप फंक्शन NEWID का उपयोग कर सकते हैं । आप C # का उपयोग कर रहे हैं, इसलिए मुझे लगता है कि आप SQL सर्वर का उपयोग कर रहे हैं। मुझे यकीन है कि अन्य डेटाबेस सिस्टम के समान कार्य हैं।

select NEWID()

यदि आप Oracle का उपयोग कर रहे हैं तो आप SYS_GUID()फ़ंक्शन का उपयोग कर सकते हैं । इस प्रश्न का उत्तर देखें: Oracle में एक GUID बनाएँ



12

आपने अपने प्रश्न में इसके बारे में नहीं पूछा, लेकिन मुझे लगता है कि यह इंगित करने योग्य है कि प्राथमिक कुंजी के लिए GUID का उपयोग करना हमेशा एक अच्छा विचार नहीं है। जब यह सरल है, तो यह प्रदर्शन को प्रभावित कर सकता है जब एक सूचकांक में GUID का उपयोग किया जाता है। क्या आपने एक पहचान कॉलम का उपयोग करने पर विचार किया है जो इसके बजाय पूर्णांक मान है?

यहाँ कुछ लेख हैं जिन्हें पढ़ना उपयोगी हो सकता है।


1
हाँ, मैं आपसे सहमत हूँ। हालाँकि मैं एक डेटाबेस पर काम कर रहा हूँ जिसे किसी और ने विकसित किया है। पिछली सभी तालिकाओं में एक प्राथमिक कुंजी के रूप में एक मार्गदर्शिका का उपयोग किया गया था, इसलिए मैं केवल सुसंगत होने की कोशिश कर रहा हूं। हालांकि नई टेबलों के लिए शायद मुझे केस के आधार पर मूल्यांकन करना चाहिए। हालांकि जानकारी के लिए धन्यवाद।
मिस्टर क्रिकेट

1

MySQL में यह UUID () है। तो यह प्रश्न होगा:

insert into cars
(id, Make, Model)
values(UUID(), "Ford", "Mustang")

यदि आप uuid का पुन: उपयोग करना चाहते हैं तो आप इसे इस तरह कर सकते हैं:

set @id=UUID();
insert into cars
(id, Make, Model)
values(@id, "Ford", "Mustang");
select @id;

दोनों ने mysql
Fusca Software

1

प्रश्न के प्रारूप में (पेडेंट को हाजिर करें!)

insert into cars
  (id, Make, Model)
  values(NEWID(), "Ford", "Mustang")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.