Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

ट्रिगर डालने के सक्रिय होने पर MySQL डेटाबेस में 4-बाइट UTF-8 वर्ण / इमोजी डालने में समस्या

ऐसा इसलिए होता है क्योंकि information_schema.processlist UTF8mb3 वर्ण सेट का उपयोग कर रहा है। (UTF, UTFmb3 का एक उपनाम है)। यह सरल प्रश्न इसे स्पष्ट करता है:

mysql> select info, "🔥" from information_schema.processlist;
+------------------------------------------------------+------+
| info                                                 | ?    |
+------------------------------------------------------+------+
| select info, "?" from information_schema.processlist | 🔥     |
+------------------------------------------------------+------+
1 row in set, 1 warning (0,00 sec)

Warning (Code 1366): Incorrect string value: '\xF0\x9F\x94\xA5" ...' for column 'INFO' at row 1

जब ट्रिगर info . की सामग्री डालने का प्रयास करता है तो उपरोक्त चेतावनी के परिणामस्वरूप त्रुटि हो सकती है किसी अन्य तालिका में कॉलम।

मुझे लगता है कि समस्या यह है कि क्वेरी स्ट्रिंग को processlist . में संग्रहीत किया जाता है तालिका को अपेक्षित वर्ण सेट में परिवर्तित किए बिना। मैंने एक बग रिपोर्ट दायर की है इस बारे में।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL अभिकथन जैसी बाधा

  2. mysql में टेक्स्ट प्रकार के लिए डिफ़ॉल्ट मान कैसे सेट करें?

  3. PHP/MySQL टिप्पणियों को उत्तरों के साथ समूहीकृत करें

  4. डेटाबेस में अल्पविराम सूची में विशिष्ट मान खोजें

  5. cfchart टैग का उपयोग करके एकल पाई चार्ट में एकाधिक प्रश्नों से डेटा प्रदर्शित करना