फिक्स्ड स्टेटमेंट लेकिन तत्काल दूसरे मुद्दे के बारे में आपकी टिप्पणी की समीक्षा करने के बाद, यह स्पष्ट था कि आप इसे संग्रहीत प्रक्रिया या फ़ंक्शन के भीतर उपयोग नहीं कर रहे हैं। flow control statements के लिए दस्तावेज़ीकरण कोड>
बहुत ही सूक्ष्मता से बताता है कि उन्हें संग्रहित प्रक्रियाओं/कार्यों के भीतर होना चाहिए।
एक प्रक्रिया के भीतर होने के लिए अपना कोड अपडेट करें, और फिर बस प्रक्रिया को निष्पादित करने के लिए कॉल करें:
USE mysql;
DROP PROCEDURE p;
DELIMITER |
CREATE PROCEDURE p() BEGIN
CASE (SELECT COUNT(*) FROM user WHERE User = '' AND Host = 'localhost')
WHEN 1 THEN
DROP USER ''@'localhost';
FLUSH PRIVILEGES;
ELSE
SELECT 'no users found!';
END CASE;
END;
|
CALL p();
यह भी ध्यान दें कि मैंने एक कैच-ऑल ELSE added जोड़ा है खंड मैथा; यदि आप मान नहीं समझ पाते हैं, CASE एक "मामला नहीं मिला" चेतावनी देगा - जो वांछनीय हो भी सकता है और नहीं भी।