mysql - 模拟 "create user if not exists"语法错误

标签 mysql database

MySQL 不允许您在 create user 语句中指定 if not exists 子句(尽管 create tablecreate procedure 确实支持这个)。 2005 年有一个功能请求,但 MySQL 开发人员已经完成了所有相关工作,所以它可能不会很快发生:

http://bugs.mysql.com/bug.php?id=15287

我正在尝试使用以下语句模拟此功能:

if (select ifnull((select 1
                     from mysql.user
                    where User = 'recuser'
                      and Host = '%'), 0) = 0) then
  create user 'recuser'@'%' identified by password 'blah';
end if;

但是 MySQL 提示 if 语句中的语法 - 我看不出有什么问题,希望其他人可以指出问题所在。

谢谢!

最佳答案

Denis 回答了您的确切问题,但还有其他方法可以解决您的问题:请参阅我对 mysql create user only when the user doesn't exist 的回答(这里也有类似存储过程的例子)

关于mysql - 模拟 "create user if not exists"语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502885/

相关文章:

php - Mysql,根据日期选择行

java - 我应该使用键/值数据库来存储我的 API 日志吗?

php - 如何使用已弃用的 mysql_* 函数成功重写旧的 mysql-php 代码?第二部分

php - 创建将数据提交到数据库并发送电子邮件的组合 PHP 脚本时出现的问题

mysql - 如何仅针对共享相似前缀的表将存储引擎从 MyISAM 更改为 innoDB?

php - 如何将时间戳值更新/插入到 PHP/MySQL 中的时间戳字段中?

MySQL 唯一键用于更多列不起作用

iphone - 如何从 iOS 应用程序连接到 Oracle 数据库?

php - 如何在PHP中同时连接到2个数据库

php - mysqli_query 返回 null,找不到我出错的地方。 PHP-MySQL