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

क्या MySQL में UPDATE समान मान होने पर उन्हें ओवरराइट करता है

MySQL UPDATE का व्यवहार समान मानों के साथ

नहीं, MySQL UPDATE समान मान होने पर उन्हें ओवरराइट नहीं करता। यदि नया मान मौजूदा मान के समान है, तो MySQL उस पंक्ति को "बदला हुआ" नहीं मानता।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    StudentId INT,
    StudentMathMarks INT,
    StudentMySQLMarks INT
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable VALUES (1, 56, 78);
mysql> INSERT INTO DemoTable VALUES (2, 88, 99);
mysql> INSERT INTO DemoTable VALUES (3, 34, 98);

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+------------------+-------------------+
| StudentId | StudentMathMarks | StudentMySQLMarks |
+-----------+------------------+-------------------+
| 1         | 56               | 78                |
| 2         | 88               | 99                |
| 3         | 34               | 98                |
+-----------+------------------+-------------------+

उन मानों के साथ अपडेट करने का प्रयास करें जो पहले से मौजूद हैं (StudentId 2 के लिए Math 88 और MySQL 99):

mysql> UPDATE DemoTable
    SET StudentId = 2, StudentMathMarks = 88, StudentMySQLMarks = 99
    WHERE StudentId = 2;

आउटपुट:

Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

व्याख्या:

  • Rows matched: 1 - WHERE क्लॉज से 1 पंक्ति मेल खाई
  • Changed: 0 - लेकिन 0 पंक्तियां वास्तव में बदली गईं क्योंकि सभी मान समान थे
  • 0 rows affected - यही दर्शाता है कि UPDATE समान मानों को ओवरराइट नहीं करता

व्यावहारिक प्रभाव:

  • ट्रिगर्स (AFTER UPDATE) केवल तब फायर होते हैं जब पंक्ति वास्तव में बदलती है
  • बाइनरी लॉगिंग में अनावश्यक लिखावट नहीं होती
  • प्रदर्शन थोड़ा बेहतर होता है क्योंकि डिस्क राइट नहीं होती
  • ROW_COUNT() केवल वास्तव में बदली गई पंक्तियों की संख्या लौटाता है

नोट: यह व्यवहार MySQL-विशिष्ट है। कुछ अन्य डेटाबेस (जैसे PostgreSQL) समान मानों पर भी पंक्ति को "अपडेटेड" मान सकते हैं।

  1. - MySQL में कॉलम अपडेट करें और ट्रेलिंग अंडरस्कोर मान हटाएं

    MySQL में किसी कॉलम से ट्रेलिंग अंडरस्कोर (_) मानों को हटाने के लिए TRIM() फंक्शन का उपयोग UPDATE स्टेटमेंट के साथ किया जाता है। सिंटैक्स: UPDATE yourTableName SET yourColumnName = TRIM(TRAILING _ FROM yourColumnName); आइए एक उदाहरण से समझते हैं। पहले एक टेबल बनाते हैं: mysql> create table De

  1. - MySQL में खाली मानों को NULL में कैसे अपडेट करें?

    MySQL में खाली स्ट्रिंग () को NULL में बदलने के लिए IF() फ़ंक्शन के साथ UPDATE स्टेटमेंट का उपयोग करें। यह डेटा सफाई और मानकीकरण के लिए उपयोगी है। सिंटैक्स UPDATE table_name SET column_name = IF(column_name = , NULL, column_name); उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTabl

  1. - MySQL में WHERE क्लॉज में एकाधिक शर्तों के साथ UPDATE कैसे करें?

    MySQL में UPDATE स्टेटमेंट के WHERE क्लॉज में AND ऑपरेटर का उपयोग करके एकाधिक शर्तें निर्दिष्ट करके विशिष्ट पंक्तियों को अपडेट किया जा सकता है। सिंटैक्स UPDATE table_name SET column = value WHERE condition1 AND condition2 AND ...; उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTable