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

रेल सक्रिय रिकॉर्ड माइग्रेशन ने mysql के वर्चर कॉलम पर COLLATE utf8_bin क्यों उत्पन्न किया?

utf8_bin प्रत्येक वर्ण के बाइनरी मान द्वारा, केस सेंसिटिव मोड में स्ट्रिंग्स की तुलना करने के लिए संयोजन का उपयोग किया जाता है। यह आपके डेटाबेस की आपकी स्थानीय सेटिंग्स पर निर्भर हो सकता है कि किस वर्णसेट या संयोजन का उपयोग किया जाता है। उदाहरण के लिए एक MySQL डेटाबेस के लिए, आप निम्न MySQL कमांड द्वारा अपने MySQL डेटाबेस के कोलेशन मोड की जांच कर सकते हैं

mysql> SELECT COLLATION(VERSION());
+----------------------+
| COLLATION(VERSION()) |
+----------------------+
| utf8_general_ci      |
+----------------------+

..या इसका उपयोग करके..

mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+

आपके मामले में इनमें से एक मान utf8_bin . होना चाहिए . डेटाबेस के लिए सामान्य मान आपकी कॉन्फ़िगरेशन फ़ाइल में सेट किए जा सकते हैं, शायद my.cnf MySQL के लिए। एक विशिष्ट इंजन, चारसेट या संयोजन के साथ एक MySQL तालिका बनाने के लिए आप माइग्रेशन विकल्पों का उपयोग कर सकते हैं:

create_table :users, 
        :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci'
        ...

दस्तावेज़ीकरण के अनुसार, टेबल कैरेक्टर सेट और कोलेशन ए> MySQL एक्सटेंशन हैं, मानक SQL में ऐसी कोई चीज़ नहीं है।




  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:INSERT SELECT . से रिटर्न परिणाम प्राप्त करें

  2. MySQL:उस तालिका से डेटा का चयन करें जहां दिनांक वर्तमान सप्ताह और वर्तमान माह में आता है

  3. MySQL PHP ज़िप कोड तुलना विशेष रूप से दूरी

  4. एक अतिरिक्त पिवट टेबल कॉलम का मूल्य प्राप्त करना

  5. मेल खाने वाले टैग वाले सभी प्रोजेक्ट चुनें