खतरा मुझे लगता है कि वह ALTER
मौजूदा टेक्स्ट को नष्ट कर देगा।
साथ ही, ... आपका 'नाम' चीनी दिखता है, तो मुझे लगता है कि आप चीनी अक्षरों को संग्रहित करना चाहते हैं? उस स्थिति में, आपको utf8mb4
. का उपयोग करना चाहिए , न केवल utf8
. ऐसा इसलिए है क्योंकि कुछ चीनी अक्षर 4 बाइट्स लेते हैं (और यूनिकोड बीएमपी में नहीं हैं)।
मेरा मानना है कि आपको 2 चरणों की आवश्यकता है :
ALTER TABLE notebooks MODIFY comments BLOB;
ALTER TABLE notebooks MODIFY comments TEXT
CHARACTER SET utf8mb4 COLLATE utf8mb4_general_520_ci;
अन्यथा latin1 अक्षर ut8 में "रूपांतरित" हो जाएगा। लेकिन अगर आपके कॉलम में वास्तव में चीनी है, तो आपके पास लैटिन 1 नहीं है। ऊपर दिया गया 2-चरण परिवर्तन, (1) वर्ण सेट के किसी भी ज्ञान को बंद कर देता है, और (2) यह स्थापित करता है कि बाइट वास्तव में utf8mb4-एन्कोडेड हैं।
सुरक्षित . होने के लिए , पहले करें
RENAME TABLE notebooks TO old;
CREATE TABLE notebooks LIKE old;
INSERT INTO notebooks SELECT * FROM old;
फिर दो ALTER करें और परिणाम का परीक्षण करें। यदि कोई समस्या है, तो आप RENAME
. कर सकते हैं पुरानी प्रति वापस पाने के लिए।