आपको nvarchar संदेश के बारे में चिंता करने की ज़रूरत नहीं है, जो कि phpmyadmin द्वारा उत्पन्न किया गया था, MySQL द्वारा नहीं। MySQL nvarchar डेटा प्रकार की अनुमति देता है, राष्ट्रीय डेटा पर MySQL मैनुअल देखें। वर्ण सेट :
<ब्लॉकक्वॉट>मानक SQL NCHAR या NATIONAL CHAR को यह इंगित करने के तरीके के रूप में परिभाषित करता है कि CHAR कॉलम को कुछ पूर्वनिर्धारित वर्ण सेट का उपयोग करना चाहिए। MySQL इस पूर्वनिर्धारित वर्ण सेट के रूप में utf8 का उपयोग करता है। उदाहरण के लिए, ये डेटा टाइपडिक्लेरेशन समतुल्य हैं:
CHAR(10), CHARACTER SET utf8 राष्ट्रीय चरित्र(10), NCHAR(10)
ये इस प्रकार हैं:
वर्चर(10), कैरेक्टर सेट यूटीएफ8 नेशनल वर्चर(10), नवरचर(10), नचर वर्चर(10), नेशनल कैरेक्टर वेरीइंग(10), नेशनल चार्वरिंग(10)
वास्तविक समस्या त्रुटि संदेश के निचले भाग में है:पंक्ति का आकार बहुत बड़ा है। यह त्रुटि संदेश MySQL से आता है और इसे आपको हल करने की आवश्यकता है।
mysql nvarchar डेटा प्रकार के लिए utf8 वर्ण सेट का उपयोग करता है। Mysql में एक utf8 कैरेक्टर 3 बाइट्स तक का उपयोग करता है। आपका config_data
फ़ील्ड को nvarchar(21844)
. के रूप में परिभाषित किया गया है , इसलिए इसे 21844*3+2=65534 बाइट्स तक की आवश्यकता होती है।
जैसा कि त्रुटि संदेश कहता है, एक पंक्ति 65535 बाइट तक लंबी हो सकती है, इसलिए आपके पास 1 बाइट शेष है, लेकिन अन्य फ़ील्ड पंक्ति आकार को सीमा से ऊपर धकेलते हैं।
आप क्या कर सकते हैं:
- कम करें
config_data
फ़ील्ड की लंबाई इसलिए कुल पंक्ति लंबाई सीमा में फिट बैठती है। - बदलें
config_data
वर्चर के लिए डेटा प्रकार और एक वर्ण सेट का उपयोग करें जिसके लिए कम बाइट्स की आवश्यकता होती है - बस सुनिश्चित करें कि वर्ण सेट आपके लिए आवश्यक सभी वर्णों का समर्थन करता है। - बदलें
config_data
डेटा प्रकार सेtext
क्योंकि टेक्स्ट फ़ील्ड के मान का केवल एक छोटा सा हिस्सा वास्तव में पंक्ति में ही संग्रहीत होता है। यह वास्तव में त्रुटि संदेश में ही सुझाया गया है।