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
- я не вижу в этом ничего плохого, надеюсь, кто-то еще может указать, в чем проблема.
Спасибо!