如何使用动态用户名创建用户?

时间:2013-01-21 09:20:19

标签: mysql

在MySQL脚本中,我想做这样的事情:

SET @username = CONCAT(DATABASE(), "-1@`%`");
CREATE USER @username;

但我无法解决CREATE USER行中的语法错误。

有没有办法转义内联变量,以便CREATE USER可以拥有一个动态创建的用户?

1 个答案:

答案 0 :(得分:1)

您可以使用prepared statements

执行此操作
set @sql=concat("create user '", database(), "-haha", "'@'%' identified by 'whatever';");
prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;

select @sql;

select * from mysql.user where user = 'playground-haha';