คุณสามารถใช้การสืบค้นแบบไดนามิกสำหรับสิ่งนี้ ขั้นแรกให้ตั้งชื่อตัวแปรสำหรับชื่อผู้ใช้และชื่อตัวแปรสำหรับรหัสผ่าน ไวยากรณ์มีดังนี้ −
SET @anyVariableName='yourUserName';SET @anyVariableName1='yourpassword';
ตอนนี้คุณสามารถใช้ฟังก์ชัน CONCAT() จาก MySQL ไวยากรณ์มีดังนี้ −
SET @yourQueryName =CONCAT(' CREATE USER "',@anyVariableName,'"@"localhost" IDENTIFIED BY "',@anyVariableName1,'" ');
ให้เราใช้คำสั่ง PREPARE ที่เตรียมไว้ ไวยากรณ์มีดังนี้ −
เตรียม yourStatementVariableName จาก @yourQueryName;
ตอนนี้คุณสามารถดำเนินการคำสั่ง ไวยากรณ์มีดังนี้ −
ดำเนินการของคุณStatementVariableName;
Deallocate ข้างต้นโดยใช้ DEALLOCATE PREPARE ไวยากรณ์มีดังนี้ −
DEALLOCATE PREPARE yourStatementVariableName;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราทำตามขั้นตอนทั้งหมด -
ขั้นตอนที่ 1 − ขั้นแรกให้สร้างตัวแปรสองตัว ตัวหนึ่งสำหรับชื่อผู้ใช้และตัวที่สองสำหรับรหัสผ่านโดยใช้คำสั่ง SET
แบบสอบถามมีดังต่อไปนี้เพื่อสร้างชื่อผู้ใช้ -
mysql> set @UserName:='John Doe';Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)
แบบสอบถามเพื่อสร้างรหัสผ่าน
mysql> set @Password:='John Doe 123456';Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)
ขั้นตอนที่ 2 − ตอนนี้ใช้ฟังก์ชัน CONCAT() เพื่อสร้างผู้ใช้ แบบสอบถามมีดังนี้ −
mysql> SET @CreationOfUser =CONCAT(' '> CREATE USER "',@UserName,'"@"localhost" IDENTIFIED BY "',@Password,'" ' -> );แบบสอบถามตกลง 0 แถวได้รับผลกระทบ ( 0.02 วินาที)
ในแบบสอบถามข้างต้น เราได้ใช้ชื่อตัวแปร @UserName และชื่อตัวแปร @Password เพื่อสร้างผู้ใช้ที่มีชื่อและรหัสผ่าน
ขั้นตอนที่ 3 − ตอนนี้ คุณต้องเตรียมคำสั่งโดยใช้ตัวแปรที่ผู้ใช้กำหนดข้างต้น @CreationOfUser แบบสอบถามมีดังนี้ −
mysql> เตรียม st จาก @CreationOfUser ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) เตรียมคำสั่ง
ขั้นตอนที่ 4 − ดำเนินการคำสั่งที่เตรียมไว้ข้างต้น แบบสอบถามมีดังนี้ −
mysql> EXECUTE st;Query OK, 0 แถวได้รับผลกระทบ (0.37 วินาที)
ขั้นตอนที่ 5 − ตรวจสอบว่าผู้ใช้ “John Doe” ถูกสร้างขึ้นในตาราง MySQL.user แล้ว -
mysql> เลือกผู้ใช้, โฮสต์จาก MySQL.user;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+--------------------------------------+| ผู้ใช้ | โฮสต์ |+-----------------------------------------------+| มานิช | % || ผู้ใช้2 | % || mysql.infoschema | % || mysql.session | % || mysql.sys | % || ราก | % || @ชื่อผู้ใช้@ | localhost || อดัม สมิธ | localhost || จอห์น | localhost || จอห์น โด | localhost || ผู้ใช้1 | localhost || น | localhost || hbstudent | localhost |+----------------------------------------------------+13 แถวในชุด (0.00 วินาที)ใช่ เรามีชื่อผู้ใช้กับ John Doe
ขั้นตอนที่ 6 − ตอนนี้ DEALLOCATE คำสั่งที่เตรียมไว้ แบบสอบถามมีดังนี้ −
mysql> DEALLOCATE PREPARE st;Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)