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