您可以为此使用动态查询。首先为用户名设置变量名,为密码设置变量名。语法如下-
SET @anyVariableName=’yourUserName’; SET @anyVariableName1=’yourpassword’;
现在,您可以使用CONCAT()
MySQL中的函数。语法如下-
SET @yourQueryName = CONCAT (' CREATE USER "',@anyVariableName,'"@"localhost" IDENTIFIED BY "',@anyVariableName1,'" ' );
让我们使用准备好的语句PREPARE。语法如下-
PREPARE yourStatementVariableName FROM @yourQueryName;
现在您可以执行该语句。语法如下-
EXECUTE yourStatementVariableName;
使用DEALLOCATE PREPARE取消分配上述内容。语法如下-
DEALLOCATE PREPARE yourStatementVariableName;
要了解上述语法,让我们遵循所有步骤-
步骤1-首先使用SET命令创建两个变量,一个用于用户名,第二个用于密码。
查询如下创建用户名-
mysql> set @UserName:='John Doe';
查询创建密码。
mysql> set @Password:='John Doe 123456';
步骤2-现在使用该CONCAT()
方法创建一个用户。查询如下-
mysql> SET @CreationOfUser = CONCAT(' '> CREATE USER "',@UserName,'"@"localhost" IDENTIFIED BY "',@Password,'" ' -> );
在上面的查询中,我们使用了@UserName变量名和@Password变量名来创建具有名称和密码的用户。
步骤3-现在您需要使用上面的用户定义变量@CreationOfUser准备语句。查询如下-
mysql> PREPARE st FROM @CreationOfUser; Statement prepared
步骤4-执行上面准备的语句。查询如下-
mysql> EXECUTE st;
步骤5-检查用户“ John Doe”已在MySQL.user表中创建-
mysql> select user,host from MySQL.user;
以下是输出-
+------------------+-----------+ | user | host | +------------------+-----------+ | Manish | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | @UserName@ | localhost | | Adam Smith | localhost | | John | localhost | | John Doe | localhost | | User1 | localhost | | am | localhost | | hbstudent | localhost | +------------------+-----------+ 13 rows in set (0.00 sec)
是的,我们有John Doe的用户名。
步骤6-现在,取消预准备的语句。查询如下-
mysql> DEALLOCATE PREPARE st;