Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

हमें किसी संख्या को MySQL ENUM कॉलम में क्यों नहीं स्टोर करना चाहिए?

<घंटा/>

MySQL ENUM सदस्यों को संदर्भित करने के लिए आंतरिक रूप से पूर्णांक कुंजियों (सूचकांक संख्या) के रूप में ENUM मानों को संग्रहीत करता है। ENUM कॉलम में पूर्णांक मानों को संग्रहीत नहीं करने का मुख्य कारण यह है कि यह बहुत स्पष्ट है कि MySQL मूल्य के बजाय इंडेक्स को संदर्भित करता है और इसके विपरीत।

उदाहरण

निम्नलिखित उदाहरण इसे स्पष्ट कर सकते हैं -

mysql> Create table enmtest(Val ENUM('0','1','2'));
Query OK, 0 rows affected (0.18 sec)

mysql> Insert into enmtest values('1'),(1);
Query OK, 2 rows affected (0.19 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from enmtest;
+-----+
| Val |
+-----+
| 1   |
| 0   |
+-----+
2 rows in set (0.00 sec)

यहां, हमने '1' को एक स्ट्रिंग के रूप में डाला और गलती से 1 को एक संख्या के रूप में भी डाला (बिना उद्धरण के)। MySQL भ्रमित रूप से हमारे नंबर इनपुट को इंडेक्स वैल्यू के रूप में उपयोग करता है यानी सदस्य सूची में पहले आइटम का आंतरिक संदर्भ (यानी 0)।


  1. MySQL में मौजूदा कॉलम में NULL विशेषता सेट करें

    किसी मौजूदा कॉलम में NOT NULL विशेषता सेट करने के लिए, ALTER TABLE कमांड का उपयोग करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1949 ( UserId int, UserName varchar(20) );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) यहाँ एक मौजूदा कॉलम में NOT NULL एट्रिब्यूट सेट करने की क्वेरी है - तालिका ब

  1. स्तंभ मानों के लिए MySQL में ENUM सेट करें

    तालिका बनाते समय, उस कॉलम के लिए ENUM प्रकार सेट करें जिसे आप ENUM मान चाहते हैं। आइए पहले एक टेबल बनाएं - );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (1.75 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable2019 मानों में डालें (45, दूसरा); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 स

  1. एक कॉलम के मान को एक MySQL संग्रहीत कार्यविधि के चर में संग्रहीत करें

    एक चर घोषित करने के लिए, MySQL संग्रहीत कार्यविधि में DECLARE का उपयोग करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.49 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable2034(StudentName,StudentAge) में डालें मान (माइक, 19); क्वेरी ठीक है, 1 पंक्ति प्र