MySQL does not allow you to specify an if not exists
clause in a create user
statement (despite the fact that create table
and create procedure
do support this). There was a feature request for this in 2005 but the MySQL devs have done sod all about it, so it's probably not going to happen anytime soon:
http://bugs.mysql.com/bug.php?id=15287
I'm trying to emulate this functionality with the following statement:
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;
but MySQL complains about the syntax in the if
statement - I can't see anything wrong with it, hopefully someone else can point out what the issue is.
Thanks!
Denis answered your precise question, but there are other ways around your problem: see my answer to mysql create user only when the user doesn't exist (where there is also an example of a similar stored procedure as well)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With