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 में ALTER TABLE का उपयोग करके मौजूदा कॉलम पर NOT NULL विशेषता सेट करें

    MySQL में मौजूदा कॉलम को NOT NULL बनाना मौजूदा कॉलम पर NOT NULL प्रतिबंध जोड़ने के लिए, ALTER TABLE ... MODIFY स्टेटमेंट का उपयोग करें जिसमें कॉलम परिभाषा में NOT NULL शामिल हो। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) UserName पर NOT NULL प्रतिबंध जोड़ना MODIFY UserName VARCHAR(20) NO

  1. - MySQL में कॉलम मानों के लिए ENUM कैसे सेट करें?

    ENUM कॉलम के साथ टेबल बनाना टेबल बनाते समय ENUM प्रकार निर्दिष्ट करें: ); रिकॉर्ड डालना INSERT INTO DemoTable2019 VALUES (45, Second); सभी रिकॉर्ड देखना SELECT * FROM DemoTable2019; +--------------+---------------+ | StudentMarks | StudentStatus | +--------------+---------------+ | 96

  1. - MySQL स्टोर्ड प्रोसीजर के वेरिएबल में कॉलम का मान स्टोर करें

    समाधान स्टोर्ड प्रोसीजर में DECLARE से वेरिएबल घोषित करें, SELECT ... INTO से मान असाइन करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2034 (StudentName, StudentAge) VALUES (Chris, 23), (David, 21), (Robert, 25), (Mike, 19); स्टोर्ड प्रोसीजर बनाएं DELIMITER ; कॉल करें CALL select_into_variable(