使用變數在MySQL中建立使用者?


您可以為此使用動態查詢。首先設定使用者名稱變數名和密碼變數名。語法如下:

SET @anyVariableName=’yourUserName’;
SET @anyVariableName1=’yourpassword’;

現在您可以使用MySQL中的CONCAT()函式。語法如下:

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';
Query OK, 0 rows affected (0.00 sec)

建立密碼的查詢。

mysql> set @Password:='John Doe 123456';
Query OK, 0 rows affected (0.00 sec)

步驟2 - 現在使用CONCAT()函式建立使用者。查詢如下:

mysql> SET @CreationOfUser = CONCAT('
   '> CREATE USER "',@UserName,'"@"localhost" IDENTIFIED BY "',@Password,'" '
   -> );
Query OK, 0 rows affected (0.02 sec)

在上面的查詢中,我們使用了@UserName變數名和@Password變數名來建立具有名稱和密碼的使用者。

步驟3 - 現在您需要使用上面定義的使用者變數@CreationOfUser準備語句。查詢如下:

mysql> PREPARE st FROM @CreationOfUser;
Query OK, 0 rows affected (0.00 sec)
Statement prepared

步驟4 - 執行上面準備好的語句。查詢如下:

mysql> EXECUTE st;
Query OK, 0 rows affected (0.37 sec)

步驟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;
Query OK, 0 rows affected (0.00 sec)

更新於: 2019年7月30日

905 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.