2010-05-29 17 views
48

मुझे मौजूदा कॉलम की स्थिति (बेहतर दृश्यता के लिए) स्थानांतरित करने की आवश्यकता है।MySQL कॉलम को पुनर्व्यवस्थित कैसे करें?

डेटा को प्रभावित किए बिना यह कैसे किया जा सकता है?

+6

डुप्लिकेट नहीं: पहला डेटा स्वैप करने के बारे में है, दूसरा "sqlyog" के बारे में है। –

उत्तर

48

कॉलम को बदलने का एकमात्र तरीका मुझे पता है। आप पहली बार SHOW CREATE TABLE का उपयोग कर अपने स्तंभ परिभाषा निकालने और एक ALTER TABLE जारी करेंगे:

ALTER TABLE foo 
CHANGE COLUMN bar 
bar COLUMN_DEFINITION_HERE 
FIRST; 

या यदि आप यह के बाद एक निश्चित अन्य स्तंभ हैं:

... AFTER OTHER_COLUMN; 
+5

या '... अन्य_COLUMN' –

+1

के बाद मुझे' BEFORE' के साथ समस्या थी, मैंने 'FIRST' –

+7

का उपयोग किया था MySQL वाक्यविन्यास [लिंक] में कोई भी पहले नहीं है (http://dev.mysql.com/doc/refman/5.7 /en/alter-table.html), केवल बाद में और FIRST – DocGono

41

Modify भी काम करता है। एक नज़र:

ALTER TABLE foo MODIFY bar bartype AFTER baz; 
+2

दरअसल यह स्वीकार्य उत्तर होना चाहिए। – AlexioVay

+0

कोई भी चेंज कॉलम और संशोधित के बीच अंतर को समझा सकता है? क्या एक हल्का वजन ऑपरेशन संशोधित है? क्या यह टेबल को लॉक नहीं करता है? धन्यवाद। अद्यतन: ऐसा लगता है कि परिवर्तन और संशोधन समानार्थी हैं, जहां ओरेकल उपयोगकर्ताओं के लिए संशोधित किया गया था। https://dev.mysql.com/doc/refman/5.7/en/alter-table.html – jjohn

1

यहाँ एसक्यूएल क्वेरी है
ALTER तालिका TABLE_NAME other_column के बाद संशोधित स्तंभ misplaced_column स्तंभ परिभाषा; यहां कॉलम-परिभाषा पूर्ण कॉलम परिभाषा है। कॉलम परिभाषा देखने के लिए यदि आप phpmyadmin का उपयोग कर रहे हैं तो संरचना टैब पर क्लिक करें। फिर वांछित कॉलम पर परिवर्तन लिंक पर क्लिक करें। फिर किसी भी चीज को संशोधित करने के साथ सहेजें पर क्लिक करें। यह आपको एसक्यूएल दिखाएगा। एसक्यूएल की प्रतिलिपि बनाएँ और अंत में * अन्य_column * के बाद * जोड़ें। यह सब होगा।

आप पहले की स्थिति तो ALTER तालिका TABLE_NAME पहले संशोधित स्तंभ misplaced_column स्तंभ परिभाषा करने के लिए * misplaced_column * लाना चाहते हैं,

हालांकि, ऐसा लगता है कि यह एक डुप्लिकेट प्रश्न है।

4
  1. परिवर्तन तालिका तालिका_नाम कॉलम_नाम कॉलम_डेटैट टाइप को पहले संशोधित करें;
  2. परिवर्तन तालिका तालिका_नाम स्तंभ_नाम कॉलम_डेटैट टाइप करें अन्य_column_name के बाद;
संबंधित मुद्दे