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

MySQL GENERATED COLUMN क्या है और टेबल बनाते समय इसका उपयोग कैसे करें?

मूल रूप से जनरेटेड कॉलम एक ऐसी सुविधा है जिसका उपयोग CREATE TABLE या ALTER TABLE स्टेटमेंट में किया जा सकता है और यह SQL में INSERT या UPDATE क्लॉज के माध्यम से वास्तव में भेजे बिना डेटा संग्रहीत करने का एक तरीका है। यह सुविधा MySQL 5.7 में जोड़ी गई है। एक जनरेटेड कॉलम टेबल डोमेन के भीतर काम करता है। इसका सिंटैक्स निम्नानुसार होगा:

सिंटैक्स

column_name data_type [GENERATED ALWAYS] AS (expression) [VIRTUAL | STORED] [UNIQUE [KEY]]

यहां, सबसे पहले कॉलम नाम और उसका डेटा टाइप निर्दिष्ट करें।

  • फिर GENERATED ALWAYS क्लॉज जोड़ें ताकि यह इंगित हो सके कि कॉलम एक जनरेटेड कॉलम है।
  • फिर, संबंधित विकल्प VIRTUAL या STORED का उपयोग करके जनरेटेड कॉलम के प्रकार को इंगित करें। डिफ़ॉल्ट रूप से, यदि आप स्पष्ट रूप से जनरेटेड कॉलम का प्रकार निर्दिष्ट नहीं करते हैं तो MySQL VIRTUAL का उपयोग करता है।

उसके बाद, AS कीवर्ड के बाद ब्रेसिज़ के भीतर अभिव्यक्ति निर्दिष्ट करें। अभिव्यक्ति में लिटरल, बिना पैरामीटर वाले बिल्ट-इन फंक्शन, ऑपरेटर, या उसी टेबल के भीतर किसी भी कॉलम के संदर्भ हो सकते हैं। यदि आप किसी फंक्शन का उपयोग करते हैं, तो वह स्केलर और डिटरमिनिस्टिक होना चाहिए।

अंत में, यदि जनरेटेड कॉलम स्टोर्ड है, तो आप उसके लिए एक यूनिक कंस्ट्रेंट परिभाषित कर सकते हैं।

उदाहरण

इस उदाहरण में, हम employee_data नामक एक टेबल बना रहे हैं जिसमें कर्मचारियों के विवरण के साथ एक जनरेटेड कॉलम है:

mysql> Create table employee_data(ID INT AUTO_INCREMENT PRIMARY KEY, First_name VARCHAR(50) NOT NULL, Last_name VARCHAR(50) NOT NULL, FULL_NAME VARCHAR(90) GENERATED ALWAYS AS(CONCAT(First_name,' ',Last_name)));
Query OK, 0 rows affected (0.55 sec)
mysql> DESCRIBE employee_data;
+------------+-------------+------+-----+---------+-------------------+
| Field      | Type        | Null | Key | Default | Extra             |
+------------+-------------+------+-----+---------+-------------------+
| ID         | int(11)     | NO   | PRI | NULL    | auto_increment    |
| First_name | varchar(50) | NO   |     | NULL    |                   |
| Last_name  | varchar(50) | NO   |     | NULL    |                   |
| FULL_NAME  | varchar(90) | YES  |     | NULL    | VIRTUAL GENERATED |
+------------+-------------+------+-----+---------+-------------------+
4 rows in set (0.00 sec)
mysql> INSERT INTO employee_data(first_name, Last_name) values('Yashpal','Sharma');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO employee_data(first_name, Last_name) values('Krishan','Kumar');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO employee_data(first_name, Last_name) values('Rakesh','Arora');
Query OK, 1 row affected (0.08 sec)
mysql> Select * from employee_data;
+----+------------+-----------+----------------+
| ID | First_name | Last_name | FULL_NAME      |
+----+------------+-----------+----------------+
| 1  | Yashpal    | Sharma    | Yashpal Sharma |
| 2  | Krishan    | Kumar     | Krishan Kumar  |
| 3  | Rakesh     | Arora     | Rakesh Arora   |
+----+------------+-----------+----------------+
3 rows in set (0.00 sec)
  1. - MySQL में टेबल बनाते समय AUTO_INCREMENT प्रारंभ मान सेट करना

    MySQL में टेबल निर्माण के समय AUTO_INCREMENT का प्रारंभ मान निर्दिष्ट करने के लिए टेबल विकल्प AUTO_INCREMENT=value का उपयोग किया जाता है। यह माइग्रेशन या डेटा मर्ज के लिए उपयोगी है। प्रारंभ मान 30 के साथ टेबल बनाना mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT, St

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

    MySQL 5.7+ में GENERATED ALWAYS AS (जेनरेटेड कॉलम / वर्चुअल कॉलम) का उपयोग करके नया कॉलम बनाएं जो अन्य कॉलम के अभिव्यक्ति से स्वचालित रूप से परिकलित होता है। उदाहरण: टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable ( -> Value1 INT, -> Value2 INT -> ); Query OK, 0 rows

  1. - MySQL तालिका बनाते समय आरक्षित कीवर्ड 'Key' का उपयोग करना

    MySQL में बैकटिक का उपयोग करके आरक्षित कीवर्ड Key को कॉलम नाम के रूप में उपयोग करना KEY MySQL में एक आरक्षित शब्द है (इंडेक्स के लिए समानार्थी)। इसे कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक (`) में लपेटना आवश्यक है। व्यावहारिक उदाहरण बैकटिक के साथ तालिका बनाना CREATE TABLE DemoTable ( `Ke