MySQL不允许您在if not exists
语句中指定create user
子句(尽管create table
和create 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
语句中的语法 - 我看不出它有什么问题,希望其他人可以指出问题是什么。
谢谢!
答案 0 :(得分:10)
Denis回答了您的确切问题,但还有其他方法解决您的问题:请参阅我对mysql create user only when the user doesn't exist的回答(其中也有类似存储过程的示例)
答案 1 :(得分:-2)
MySQL仅支持存储过程中的流控制结构。