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

MySQL में जेनरेटेड कॉलम (GENERATED ALWAYS AS) का उपयोग करके नया कॉलम बनाना और स्वचालित रूप से भरना

MySQL 5.7+ में GENERATED ALWAYS AS (जेनरेटेड कॉलम / वर्चुअल कॉलम) का उपयोग करके नया कॉलम बनाएं जो अन्य कॉलम के अभिव्यक्ति से स्वचालित रूप से परिकलित होता है।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> Value1 INT,
    -> Value2 INT
    -> );
Query OK, 0 rows affected (0.77 sec)
mysql> INSERT INTO DemoTable VALUES(10, 10), (20, 30);

मौजूदा डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 10     | 10     |
| 20     | 30     |
+--------+--------+
2 rows in set (0.00 sec)

जेनरेटेड कॉलम जोड़ना (बूलियन तुलना: समान तो 1, अलग तो 0)

mysql> ALTER TABLE DemoTable ADD Value3 INT GENERATED ALWAYS AS (Value1 = Value2);
Query OK, 0 rows affected (0.51 sec)
Records: 0  Duplicates: 0  Warnings: 0

नोट: MySQL में बूलियन अभिव्यक्ति का परिणाम पूर्णांक संदर्भ में 1 (TRUE) या 0 (FALSE) होता है।

अपडेट के बाद डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
| 10     | 10     | 1      |  -- समान
| 20     | 30     | 0      |  -- अलग
+--------+--------+--------+
2 rows in set (0.00 sec)

जेनरेटेड कॉलम के प्रकार:

  • VIRTUAL (डिफ़ॉल्ट) - पढ़ने पर परिकलित, स्टोर नहीं होता, कोई डिस्क स्पेस नहीं
  • STORED - लिखने पर परिकलित, डिस्क पर स्टोर होता है, इंडेक्स बनाया जा सकता है

स्पष्ट VIRTUAL/STORED:

ALTER TABLE DemoTable ADD Value3 INT GENERATED ALWAYS AS (Value1 = Value2) VIRTUAL;
ALTER TABLE DemoTable ADD Value4 INT GENERATED ALWAYS AS (Value1 + Value2) STORED;

लाभ: डेटा अतिरेक नहीं, हमेशा सिंक में, एप्लिकेशन लॉजिक सरल।

  1. - MySQL में NVARCHAR कॉलम कैसे बनाएं

    MySQL में NVARCHAR का व्यवहार MySQL में NVARCHAR() को स्वचालित रूप से VARCHAR() में बदल दिया जाता है। NVARCHAR का अर्थ National Varchar होता है, लेकिन MySQL इसे VARCHAR के रूप में ही ट्रीट करता है। आइए एक टेबल बनाते हैं जिसमें एक कॉलम NVARCHAR हो: mysql> CREATE TABLE DemoTable ( StudentName N

  1. - MySQL में CREATE TABLE AS SELECT से मौजूदा टेबल से विशिष्ट पंक्तियों के साथ नई टेबल बनाएं

    MySQL में CREATE TABLE ... AS SELECT स्टेटमेंट का उपयोग करके किसी मौजूदा टेबल से डेटा कॉपी करते हुए, विशिष्ट शर्तों के आधार पर फ़िल्टर की गई पंक्तियों के साथ एक नई टेबल बनाई जा सकती है। यह बैकअप, टेस्टिंग, या सबसेट बनाने के लिए बहुत उपयोगी है। सिंटैक्स CREATE TABLE new_table_name AS SELECT column_l

  1. - MySQL सीक्वेंस कैसे बनाएं?

    MySQL में सीक्वेंस क्या है? MySQL में, एक सीक्वेंस इंटीजर्स की एक सूची को संदर्भित करता है जो आरोही क्रम में 1 से शुरू होकर या 0 से यदि निर्दिष्ट किया गया हो, उत्पन्न होती है। कई एप्लिकेशन को सीक्वेंस की आवश्यकता होती है जिनका उपयोग विशेष रूप से पहचान के लिए अद्वितीय संख्या उत्पन्न करने के लिए किया