Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैं कैसे जांचूं कि तालिका में मूल्य पहले से मौजूद है या नहीं?

unique constraint का उपयोग करें . रिकॉर्ड डालने/अपडेट करने का प्रयास करें और अद्वितीय बाधा का उल्लंघन होने पर फेंके गए अपवाद को पकड़ें। अद्वितीय ई-मेल पतों की गारंटी देने का यही एकमात्र तरीका है; पहले जाँच करना और फिर अपडेट करना समवर्ती मुद्दों के लिए प्रवण होता है क्योंकि यह संभव है कि कोई अन्य व्यक्ति अपने रिकॉर्ड को उसी मान पर अपडेट करता है जिसे आप चेक करने के ठीक बाद और रिकॉर्ड को अपडेट करने से पहले सेट करने का प्रयास कर रहे हैं।

साथ ही:where का उपयोग करना सीखें -खंड। अब आप सभी रिकॉर्ड प्राप्त कर रहे हैं, उन पर पुनरावृति कर रहे हैं आदि। जो अनावश्यक रूप से बहुत अधिक संसाधन लेता है, बहुत अधिक समय लेता है और सिर्फ एक सादा अपशिष्ट है। यदि आप अपने द्वारा लिखे गए मानदंड से मेल खाने वाले रिकॉर्ड की जांच करना चाहते हैं:

Select foo, bar from table where baz = 123

जहां baz = 123 आपका मानदंड है। कल्पना करें कि जब आपके वर्तमान सेटअप में 500, या 500,000 रिकॉर्ड भी होंगे तो क्या होगा। डेटाबेस आपकी क्वेरी को निष्पादित करेगा, उस डेटाबेस से सभी पंक्तियों को इकट्ठा करेगा, उन्हें आपके एप्लिकेशन में स्थानांतरित करेगा जहां आपका एप्लिकेशन सभी 500,000 परिणामों को पुनरावृत्त करेगा। या आप डीबी से वह करने के लिए कहते हैं जो इसमें अच्छा है (और आप इसे पहले स्थान पर क्यों उपयोग कर रहे हैं):मानदंड एक्स से मेल खाने वाले/सभी रिकॉर्ड दें। आपको 1 या कोई भी रिकॉर्ड नहीं मिलेगा (अद्वितीय दिया गया है) बाधा):1 =कुछ रिकॉर्ड आपके मानदंड से मेल खाते हैं, कोई नहीं =कोई रिकॉर्ड मौजूद नहीं है। स्थानांतरण और "मैन्युअल रूप से देखने के लिए" 499,999 रिकॉर्ड बचाता है;-)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL संग्रहीत कार्यविधियाँ

  2. ग्रहण - टेबल से जेपीए इकाइयां, सूचीबद्ध कोई स्कीमा नहीं

  3. लार्वेल हिडन फील्ड ऑन कंडीशन

  4. PHP + HTML का उपयोग करके हाइपरलिंक में डेटाबेस मान कैसे पास करें?

  5. अंतिम प्रविष्टि द्वारा MySQL समूह