ROW_COUNT() से ON DUPLICATE KEY UPDATE पहचानना
INSERT ... ON DUPLICATE KEY UPDATE के बाद ROW_COUNT() लौटाता है: 1 = नई पंक्ति डाली गई, 2 = मौजूदा पंक्ति अपडेट हुई।
तालिका (UNIQUE कंस्ट्रेंट)
mysql> CREATE TABLE DemoTable1512 (Value INT, UNIQUE(Value));
पहली बार डालना (नई पंक्ति)
mysql> INSERT INTO DemoTable1512 VALUES(90) ON DUPLICATE KEY UPDATE Value = Value + 10;
Query OK, 1 row affected (0.09 sec)
mysql> SELECT ROW_COUNT(); -- 1 (नई पंक्ति)
दूसरी बार डालना (डुप्लिकेट → अपडेट)
mysql> INSERT INTO DemoTable1512 VALUES(90) ON DUPLICATE KEY UPDATE Value = Value + 10;
Query OK, 2 rows affected (0.12 sec)
mysql> SELECT ROW_COUNT(); -- 2 (अपडेट हुआ)
व्याख्या:
ROW_COUNT() = 1:INSERTसफल, कोई अपडेट नहींROW_COUNT() = 2: डुप्लिकेट की मिली,UPDATEनिष्पादित हुआROW_COUNT() = 0: कुछ नहीं हुआ (दुर्लभ)
उपयोग: एप्लिकेशन में यह जाँचने के लिए कि नया रिकॉर्ड बना या मौजूदा अपडेट हुआ।