UPDATE कथन जो कोई पंक्ति नहीं बदलता
हां, MySQL में ऐसा UPDATE कथन चलाया जा सकता है जो किसी पंक्ति को नहीं बदलता। यह तब होता है जब WHERE क्लॉज मेल खाता है लेकिन SET क्लॉज वही मान सेट करता है जो पहले से है।
टेबल और डेटा
mysql> CREATE TABLE DemoTable(
Id INT
);
Query OK, 0 rows affected (1.02 sec)
mysql> INSERT INTO DemoTable VALUES(201); Query OK, 1 row affected (0.22 sec) mysql> INSERT INTO DemoTable VALUES(202); Query OK, 1 row affected (0.09 sec) mysql> INSERT INTO DemoTable VALUES(290); Query OK, 1 row affected (0.11 sec) mysql> INSERT INTO DemoTable VALUES(301); Query OK, 1 row affected (0.13 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+------+ | Id | +------+ | 201 | | 202 | | 290 | | 301 | +------+ 4 rows in set (0.00 sec)
बिना बदलाव वाला UPDATE
mysql> UPDATE DemoTable SET Id = Id WHERE Id = 290; Query OK, 0 rows affected (0.08 sec) Rows matched: 1 Changed: 0 Warnings: 0
पुनः जांच
mysql> SELECT * FROM DemoTable;
+------+ | Id | +------+ | 201 | | 202 | | 290 | | 301 | +------+ 4 rows in set (0.00 sec)
व्याख्या: Rows matched: 1 Changed: 0 दर्शाता है कि एक पंक्ति मिली लेकिन कोई मान नहीं बदला। यह ट्रिगर फायर करने या टाइमस्टैम्प कॉलम अपडेट करने (यदि ON UPDATE CURRENT_TIMESTAMP है) के लिए उपयोगी हो सकता है।