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

मैं MySQL में एक इंडेक्स का नाम कैसे बदलूं

मैंने इस सवाल का जवाब 2009 में दिया था। उस समय MySQL में इंडेक्स का नाम बदलने के लिए कोई सिंटैक्स नहीं था।

तब से, MySQL 5.7 ने एक ALTER TABLE RENAME INDEX introduced पेश किया वाक्य - विन्यास।

http://dev.mysql.com/doc/refman /5.7/hi/alter-table.html भाग में कहते हैं:

MySQL के पुराने संस्करण, उदा. 5.6 और इससे पहले, ALTER TABLE एक इंडेक्स (या कुंजी, जो एक समानार्थी है) का नाम बदलने के लिए।

एकमात्र समाधान था ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...)

कोई ALTER INDEX नहीं है MySQL में कमांड। आप केवल DROP INDEX कर सकते हैं और फिर CREATE INDEX नए नाम के साथ।

उपरोक्त आपके अपडेट के संबंध में:शायद दस्तावेज़ीकरण पर्याप्त सटीक नहीं है। भले ही, इंडेक्स का नाम बदलने के लिए कोई SQL सिंटैक्स नहीं है।

एक इंडेक्स एक डेटा संरचना है जिसे डेटा से फिर से बनाया जा सकता है (वास्तव में यह इंडेक्स को समय-समय पर OPTIMIZE TABLE के साथ फिर से बनाने की सिफारिश की जाती है। ) इसमें कुछ समय लगता है, लेकिन यह एक सामान्य ऑपरेशन है। अनुक्रमणिका डेटा संरचनाएं तालिका डेटा से अलग होती हैं, इसलिए किसी अनुक्रमणिका को जोड़ने या छोड़ने के लिए तालिका डेटा को स्पर्श करने की आवश्यकता नहीं होनी चाहिए, जैसा कि दस्तावेज़ीकरण कहता है।

.frm . के संबंध में फ़ाइल, MySQL .frm के संपादन का समर्थन नहीं करता है फ़ाइल। मैं इसे किसी भी कारण से नहीं करूँगा। आपको 100% गारंटी है कि आप अपनी टेबल को खराब कर देंगे और उसे अनुपयोगी बना देंगे।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अद्वितीय तालिका/उपनाम नहीं

  2. MYSQL - तिथियों के बीच टाइमस्टैम्प पुनर्प्राप्त करें

  3. SQL कथन में NOT IN को LEFT JOIN से बदलें

  4. MySQL दिनांक तुलना

  5. InnoDB तालिका पूर्ण त्रुटि है