Na het bekijken van uw opmerking met betrekking tot de vaste instructie maar onmiddellijk tweede probleem, was het duidelijk dat u dit niet gebruikt binnen een opgeslagen procedure of functie. De documentatie voor flow control statements
geeft heel subtiel aan dat ze binnen opgeslagen procedures/functies moeten vallen.
Werk uw code bij zodat deze binnen een procedure valt en roep vervolgens de procedure aan om uit te voeren:
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();
Merk ook op dat ik een allesomvattende ELSE
. heb toegevoegd blok; als je de waarde niet vangt, CASE
zal een "Case niet gevonden" waarschuwing geven - wat al dan niet wenselijk kan zijn.