2013-07-05 5 views
5

में सभी अनुक्रमणिका का नाम कैसे बदल सकता हूं मेरे पास एक MySQL डेटाबेस है जहां अनुक्रमणिका के नाम तालिकाओं के बीच साझा किए जाते हैं। जो MySQL में ठीक है, क्योंकि इंडेक्स नाम केवल एक तालिका के भीतर अद्वितीय होना चाहिए, न कि डेटाबेस के भीतर। लेकिन मुझे इस डेटाबेस को ऐसे सिस्टम में निर्यात करना है जिसके लिए इंडेक्स नाम वैश्विक स्तर पर अद्वितीय होना आवश्यक है।मैं MySQL

क्या कोई कमांड या स्क्रिप्ट है जो मैं इंडेक्स में अद्वितीय नाम असाइन करने के लिए चला सकता हूं? मुझे परवाह नहीं है कि वे यादृच्छिक रूप से जेनरेट किए गए हैं।

+0

कोई है, लेकिन आप उस के लिए कस्टम स्क्रिप्ट लिख सकते हैं। एक नोट: MySQL में इंडेक्स का नाम बदलने का कोई तरीका नहीं है (5.7 से पहले: http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html), केवल ड्रॉप + बनाएं – zerkms

उत्तर

0

MySQL किसी सूचकांक (या कुंजी, जो समानार्थी है) का नाम बदलने के लिए ALTER TABLE में कोई वाक्यविन्यास का समर्थन नहीं करता है।

आप ALTER TABLE DROP KEY और ALTER TABLE ADD KEY कर सकते हैं।

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

1

कोई RENAME या ALTER माईएसQL पर इंडेक्स कमांड नहीं है। आपको या तो DROP सूचकांक या CREATE एक नया होना चाहिए।

2

MySQL के नवीनतम संस्करण के रूप में, अनुक्रमणिका का नाम बदलने का कोई तरीका नहीं है। आपका एकमात्र विकल्प DROP सूचकांक CREATE एक नया या सिर्फ CREATE एक नया होगा।

0

मुझे लगता है कि यह प्रकाश डाला क्या ऊपर एक टिप्पणी में alluded @zerkms लायक है - आप एक सूचकांक नाम बदल सकते हैं (MySQL 5.7 बाद से):

alter table mytable RENAME INDEX old_index_name TO new_index_name