您可以为此使用动态查询。首先为用户名设置变量名,为密码设置变量名。语法如下-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;