2009-06-24 2 views
16

मैं varchar(500) पर इंडेक्स नहीं बना सकता।"निर्दिष्ट कुंजी बहुत लंबी थी; अधिकतम कुंजी लंबाई 1000 बाइट्स है"

MySQL: Specified key was too long; max key length is 1000 bytes

+1

इस सवाल का पूरा जवाब [यहां] दिया जाता है (http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max -कुंजी-लंबाई-है-767-बाइट्स/1,814,594 # 1,814,594)। –

+0

यहां 1 लाइन छोटा और पूरी तरह से काम करने वाला समाधान है: http://stackoverflow.com/questions/1814532/1071- निर्दिष्ट-key-was-too-long-max-key-length-is-767-bytes/22873006#22873006 –

उत्तर

24
latin1 = 1 byte = 1 character 
uft8 = 3 byte = 1 character 
gbk = 2 byte = 1 character 
+4

यूनिकोड कोड बिंदु के आधार पर utf-8 वर्ण परिवर्तनीय लंबाई (1-4) नहीं होना चाहिए? – Svante

+5

एक utf8 वर्ण के लिए आवश्यक बाइट्स की अधिकतम संख्या 3 है, और MySQL को बाइट्स की अधिकतम संख्या होने के लिए ते फ़ील्ड के सभी वर्णों के लिए प्रावधान करना होगा। – Jrgns

+0

यूटीएफ -8 पर अधिकतम बाइट्स को छोड़कर 4 बाइट्स हैं। MySQL ने utf8 को केवल 3 बाइट्स का समर्थन करने के लिए यह बेवकूफ, बेवकूफ, बेवकूफ, भयंकर बुरा निर्णय लिया। "वास्तविक" यूटीएफ -8 संगत वर्णसेट utf8mb4 है, केवल MySQL 5.6 पर समर्थित है। –

संबंधित मुद्दे