MySQL स्टोर्ड प्रोसीजर में UPDATE ... WHERE IS NULL
स्टोर्ड प्रोसीजर के अंदर UPDATE स्टेटमेंट के साथ WHERE column IS NULL का उपयोग करके NULL मानों को एक कस्टम मान से अपडेट किया जा सकता है।
उदाहरण: NULL FirstName को 'Robert' से बदलें
टेबल बनाएं:
CREATE TABLE DemoTable (
Id INT,
FirstName VARCHAR(50)
);
INSERT INTO DemoTable VALUES (100, 'Chris'), (101, NULL), (102, 'Mike'), (103, NULL);
डेटा:
+------+-----------+ | Id | FirstName | +------+-----------+ | 100 | Chris | | 101 | NULL | | 102 | Mike | | 103 | NULL | +------+-----------+
स्टोर्ड प्रोसीजर बनाएं
DELIMITER //
CREATE PROCEDURE where_clauseProc()
BEGIN
UPDATE DemoTable
SET FirstName = 'Robert'
WHERE FirstName IS NULL;
END //
DELIMITER ;
प्रोसीजर कॉल करें
CALL where_clauseProc();
परिणाम:
Query OK, 2 rows affected (0.10 sec)
अपडेट के बाद डेटा
SELECT * FROM DemoTable;
+------+-----------+ | Id | FirstName | +------+-----------+ | 100 | Chris | | 101 | Robert | | 102 | Mike | | 103 | Robert | +------+-----------+
महत्वपूर्ण बिंदु
IS NULL— NULL मानों की जांच के लिए सही तरीका= NULL— गलत, हमेशा UNKNOWN लौटाता है- स्टोर्ड प्रोसीजर में
DELIMITERबदलना आवश्यक है ROW_COUNT()से प्रभावित पंक्तियों की संख्या जांच सकते हैं
पैरामीटराइज़्ड प्रोसीजर (अधिक लचीला)
DELIMITER //
CREATE PROCEDURE update_null_names(IN new_name VARCHAR(50))
BEGIN
UPDATE DemoTable
SET FirstName = new_name
WHERE FirstName IS NULL;
END //
DELIMITER ;
CALL update_null_names('Default Name');