MySQL में ALTER TABLE ... ADD COLUMN से नया कॉलम जोड़ें, फिर UPDATE ... SET ... CONCAT() से दो मौजूदा कॉलम जोड़कर नए कॉलम को भरें।
चरण
ALTER TABLE- नया कॉलम जोड़ेंUPDATE-CONCAT()से मान भरें
उदाहरण: FirstName + LastName = FullName
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable1590 (
-> FirstName VARCHAR(20),
-> LastName VARCHAR(20)
-> );
2. डेटा डालें
mysql> INSERT INTO DemoTable1590 VALUES('Adam', 'Smith');
mysql> INSERT INTO DemoTable1590 VALUES('John', 'Doe');
mysql> INSERT INTO DemoTable1590 VALUES('David', 'Miller');
3. FullName कॉलम जोड़ें
mysql> ALTER TABLE DemoTable1590 ADD COLUMN FullName VARCHAR(40);
4. CONCAT से भरें
mysql> UPDATE DemoTable1590
-> SET FullName = CONCAT(FirstName, ' ', LastName);
5. परिणाम
mysql> SELECT * FROM DemoTable1590;
+-----------+----------+--------------+ | FirstName | LastName | FullName | +-----------+----------+--------------+ | Adam | Smith | Adam Smith | | John | Doe | John Doe | | David | Miller | David Miller | +-----------+----------+--------------+
CONCAT विकल्प
CONCAT_WS(' ', FirstName, LastName)- विभाजक के साथ, NULL अनदेखा करता हैCONCAT(FirstName, ' ', LastName)- कोई NULL होने पर परिणाम NULL
NULL सुरक्षित संस्करण
UPDATE DemoTable1590
SET FullName = CONCAT_WS(' ', FirstName, LastName);
जेनरेटेड कॉलम विकल्प (MySQL 5.7+)
ALTER TABLE DemoTable1590
ADD COLUMN FullName VARCHAR(40)
GENERATED ALWAYS AS (CONCAT_WS(' ', FirstName, LastName)) STORED;
- स्वचालित रूप से अद्यतन होता है
- मैन्युअल UPDATE की आवश्यकता नहीं
- संगति गारंटी
वर्चुअल vs स्टोर्ड
| प्रकार | स्टोरेज | अपडेट | इंडेक्स |
|---|---|---|---|
| VIRTUAL | नहीं | पढ़ने पर गणना | नहीं |
| STORED | हां | लिखने पर गणना | हां |
सर्वोत्तम अभ्यास
नए डिज़ाइन के लिए जेनरेटेड कॉलम (STORED) पसंद करें। मौजूदा टेबल माइग्रेशन के लिए ALTER + UPDATE पैटर्न उपयोग करें।