Tu ne peux pas utiliser de variable de cette manière.
En présumant que MariaDB a les mêmes contraintes que MySQL :
User variables may be used in most contexts where expressions are permitted. This does not currently include contexts that explicitly require a literal value, such as in the LIMIT clause of a SELECT statement, or the IGNORE N LINES clause of a LOAD DATA statement.
https://dev.mysql.com/doc/refman/8.0...variables.html
Il faudrait préparer la requête :
SET @user_name = 'Mathilde';
SET @sql = CONCAT('DROP USER IF EXISTS ', QUOTE(@user_name), '@localhost');
-- Ou en mode ANSI :
-- SET @sql = 'DROP USER IF EXISTS ' || QUOTE(@user_name) || '@localhost';
PREPARE drop_request FROM @sql;
EXECUTE drop_request;
DEALLOCATE PREPARE drop_request;
https://dev.mysql.com/doc/refman/8.0...tatements.html
Partager