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

MySQL में पंक्तियों के मान शिफ्ट करके मौजूदा ID मान बदलना

परिचय

MySQL में मौजूदा पंक्तियों के ID मानों को एक साथ शिफ्ट (बढ़ाना/घटाना) करने के लिए सरल अंकगणित के साथ UPDATE स्टेटमेंट का उपयोग किया जा सकता है।

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

mysql> CREATE TABLE DemoTable (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20)
    -> );
Query OK, 0 rows affected (1.07 sec)
mysql> INSERT INTO DemoTable(StudentName) VALUES('Chris');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable(StudentName) VALUES('Robert');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable(StudentName) VALUES('David');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable(StudentName) VALUES('Mike');
Query OK, 1 row affected (0.10 sec)

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1         | Chris       |
| 2         | Robert      |
| 3         | David       |
| 4         | Mike        |
+-----------+-------------+
4 rows in set (0.00 sec)

ID मान 1000 से बढ़ाने की क्वेरी

mysql> UPDATE DemoTable SET StudentId = StudentId + 1000;
Query OK, 4 rows affected (0.18 sec)
Rows matched: 4  Changed: 4  Warnings: 0

अपडेट के बाद रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1001      | Chris       |
| 1002      | Robert      |
| 1003      | David       |
| 1004      | Mike        |
+-----------+-------------+
4 rows in set (0.00 sec)

महत्वपूर्ण विचार

  • प्राथमिक कुंजी: यदि कॉलम PRIMARY KEY है, तो डुप्लिकेट न बनें (यहां +1000 सुरक्षित है)
  • विदेशी कुंजी: संदर्भित टेबल्स भी अपडेट करनी होंगी (ON UPDATE CASCADE मदद कर सकता है)
  • ऑटो-इन्क्रीमेंट: अगला AUTO_INCREMENT मान प्रभावित नहीं होता (अभी भी 5 होगा)
  • लेनदेन: उत्पादन में ट्रांजैक्शन में लपेटें

अन्य शिफ्ट ऑपरेशन

-- 100 घटाएं
UPDATE DemoTable SET StudentId = StudentId - 100;

-- 10 से गुणा करें (गैप बनाने के लिए)
UPDATE DemoTable SET StudentId = StudentId * 10;

-- पुनः क्रमांक (1,2,3...) - सावधानी से!
SET @n = 0;
UPDATE DemoTable SET StudentId = (@n := @n + 1) ORDER BY StudentId;

चेतावनी

प्राथमिक कुंजी अपडेट करना जोखिम भरा है। विदेशी कुंजी संबंधों, ट्रिगर्स, एप्लिकेशन कैश पर प्रभाव पड़ सकता है। केवल आवश्यक होने पर और पूर्ण बैकअप/टेस्टिंग के बाद करें।

  1. - MySQL में विशिष्ट मान को फिक्स करके बाकी पंक्तियाँ रैंडम क्रम में कैसे दिखाएं?

    MySQL में किसी विशिष्ट मान वाली पंक्ति को शीर्ष पर फिक्स करके, शेष पंक्तियों को रैंडम क्रम में प्रदर्शित करने के लिए, ORDER BY में बूलियन एक्सप्रेशन और RAND() का संयोजन उपयोग करें। उदाहरण: मान 40 को शीर्ष पर रखें, बाकी रैंडम डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1921 (Number INT); डेट

  1. - MySQL में IFNULL का उपयोग करके NULL मानों को 1 के रूप में प्रदर्शित/अपडेट करें

    MySQL में NULL मानों को संभालना: IFNULL() और COALESCE() MySQL में IFNULL() फ़ंक्शन का उपयोग करके आप NULL मानों को डिफ़ॉल्ट मान से बदल सकते हैं। यह लेख दिखाता है कि कैसे NULL मानों को 1 से अपडेट करें और उन्हें प्रदर्शित करें। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) NULL मानों सहित डेटा

  1. - MySQL में पहले तीन पंक्तियों के लिए कस्टम मान सेट करना

    ORDER BY और LIMIT से पहली N पंक्तियां अपडेट करें पहली तीन पंक्तियों के लिए एक विशिष्ट मान सेट करने के लिए ORDER BY और LIMIT 3 का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1968 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20) ); Query OK, 0 rows affected (0.0