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

केस असंवेदनशील होने के लिए लिनक्स सर्वर में MySQL तालिका के नाम कैसे बदलें?

MySQL की केस संवेदनशीलता डिफ़ॉल्ट रूप से फ़ाइल सिस्टम द्वारा नियंत्रित की जाती है, यही वजह है कि आपको यह अंतर मिला:

<ब्लॉकक्वॉट>

9.2.2. पहचानकर्ता केस संवेदनशीलता

MySQL में, डेटाबेस डेटा निर्देशिका के भीतर निर्देशिकाओं के अनुरूप होते हैं। डेटाबेस के भीतर प्रत्येक तालिका डेटाबेस निर्देशिका के भीतर कम से कम एक फ़ाइल से मेल खाती है (और संभवतः अधिक, स्टोरेज इंजन के आधार पर)। नतीजतन, अंतर्निहित ऑपरेटिंग सिस्टम की केस संवेदनशीलता डेटाबेस और तालिका नामों की केस संवेदनशीलता में एक भूमिका निभाती है। इसका मतलब है कि विंडोज़ में डेटाबेस और टेबल नाम केस संवेदनशील नहीं हैं, और यूनिक्स की अधिकांश किस्मों में केस संवेदनशील हैं। एक उल्लेखनीय अपवाद मैक ओएस एक्स है, जो यूनिक्स-आधारित है लेकिन एक डिफ़ॉल्ट फ़ाइल सिस्टम प्रकार (एचएफएस +) का उपयोग करता है जो केस संवेदनशील नहीं है। हालांकि, मैक ओएस एक्स यूएफएस संस्करणों का भी समर्थन करता है, जो किसी भी यूनिक्स की तरह ही संवेदनशील होते हैं। खंड 1.8.4, “मानक SQL के लिए MySQL एक्सटेंशन” देखें।

सौभाग्य से, अगला वाक्य आपकी मदद कर सकता है:

<ब्लॉकक्वॉट>

lower_case_table_names सिस्टम वैरिएबल इस बात को भी प्रभावित करता है कि सर्वर आइडेंटिफ़ायर केस सेंसिटिविटी को कैसे हैंडल करता है, जैसा कि इस सेक्शन में बाद में बताया गया है।

lower_case_table_names अस्पष्टता:

<ब्लॉकक्वॉट>

यदि 0 पर सेट किया जाता है, तो तालिका नाम निर्दिष्ट के रूप में संग्रहीत किए जाते हैं और तुलना केस संवेदी होती है। यदि 1 पर सेट किया जाता है, तो तालिका के नाम डिस्क पर लोअरकेस में संग्रहीत किए जाते हैं और तुलना केस संवेदी नहीं होती है। यदि 2 पर सेट किया जाता है, तो तालिका के नाम दिए गए अनुसार संग्रहीत किए जाते हैं लेकिन लोअरकेस में तुलना की जाती है। यह विकल्प डेटाबेस नामों और तालिका उपनामों पर भी लागू होता है। अतिरिक्त जानकारी के लिए, अनुभाग 9.2.2, "पहचानकर्ता केस संवेदनशीलता" देखें।

यदि आप किसी ऐसे सिस्टम पर MySQL चला रहे हैं जिसमें केस-असंवेदनशील फ़ाइल नाम (जैसे Windows या Mac OS X) हैं, तो आपको इस चर को 0 पर सेट नहीं करना चाहिए। यदि आप इस तरह के सिस्टम पर इस चर को 0 पर सेट करते हैं और विभिन्न लेटरकेस का उपयोग करके MyISAM टैबलेटनाम तक पहुंचते हैं, तो इंडेक्स भ्रष्टाचार का परिणाम हो सकता है। विंडोज़ पर डिफ़ॉल्ट मान 1 है। मैक ओएस एक्स पर, डिफ़ॉल्ट मान 2 है।

तो ऐसा प्रतीत होता है कि आपको lower_case_table_names . सेट करना चाहिए करने के लिए 1 MySQL कॉन्फ़िग फ़ाइल में।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SUM . द्वारा MySQL समूह

  2. MySQL अद्यतन और एक पास में चुनें

  3. GTID के साथ MySQL 5.6 गैर-GTID से MySQL 5.7 में ऑनलाइन स्थानांतरण

  4. केवल डेटटाइम कॉलम पर तिथि के अनुसार समूह करें

  5. चेतावनी:mysqli_query ():mysqli नहीं ला सका