Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL TẠO NGƯỜI DÙNG với một biến?

Bạn có thể sử dụng một truy vấn động cho việc này. Đầu tiên đặt tên biến cho tên người dùng và tên biến cho mật khẩu. Cú pháp như sau -

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

Bây giờ bạn có thể sử dụng hàm CONCAT () từ MySQL. Cú pháp như sau -

SET @yourQueryName = CONCAT
('
   CREATE USER "',@anyVariableName,'"@"localhost" IDENTIFIED BY "',@anyVariableName1,'" '
);

Hãy để chúng tôi sử dụng tuyên bố đã chuẩn bị sẵn sàng PREPARE. Cú pháp như sau -

PREPARE yourStatementVariableName FROM @yourQueryName;

Bây giờ bạn có thể thực hiện câu lệnh. Cú pháp như sau -

EXECUTE yourStatementVariableName;

Hãy phân bổ những điều trên bằng cách sử dụng CHĂM SÓC TRƯỚC HẠN CHẾ. Cú pháp như sau -

DEALLOCATE PREPARE yourStatementVariableName;

Để hiểu cú pháp trên, chúng ta hãy làm theo tất cả các bước -

Bước 1 - Đầu tiên tạo hai biến, một cho tên người dùng và thứ hai cho mật khẩu bằng lệnh SET.

truy vấn như sau để tạo tên người dùng -

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

Truy vấn để tạo mật khẩu.

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

Bước 2 - Bây giờ sử dụng hàm CONCAT () để tạo người dùng. Truy vấn như sau -

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

Trong truy vấn trên, chúng tôi đã sử dụng tên biến @UserName và tên biến @Password để tạo người dùng có tên và mật khẩu.

Bước 3 - Bây giờ bạn cần chuẩn bị câu lệnh bằng cách sử dụng biến @CreationOfUser do người dùng định nghĩa ở trên. Truy vấn như sau -

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

Bước 4 - Thực hiện câu lệnh đã chuẩn bị ở trên. Truy vấn như sau -

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

Bước 5 - Kiểm tra người dùng “John Doe” đã được tạo trong bảng MySQL.user -

mysql> select user,host from MySQL.user;

Sau đây là kết quả -

+------------------+-----------+
| 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)

Có, chúng tôi có tên người dùng với John Doe.

Bước 6 - Bây giờ, hãy XỬ LÝ câu lệnh đã chuẩn bị. Truy vấn như sau -

mysql> DEALLOCATE PREPARE st;
Query OK, 0 rows affected (0.00 sec)