Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

변수가 있는 MySQL CREATE USER?

<시간/>

이를 위해 동적 쿼리를 사용할 수 있습니다. 먼저 사용자 이름에 대한 변수 이름과 암호에 대한 변수 이름을 설정합니다. 구문은 다음과 같습니다 -

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단계 − MySQL.user 테이블에 "John Doe"라는 사용자가 생성되었는지 확인합니다. −

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 Do의 사용자 이름이 있습니다.

6단계 − 이제 준비된 명령문을 DEALLOCATE합니다. 쿼리는 다음과 같습니다 -

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