MySQL nie pozwala na określenie klauzuli if not exists
w oświadczeniu create user
(pomimo faktu, że obsługuje to create table
i create procedure
). Było żądanie cecha ta w 2005 roku, ale deweloperów MySQL zrobili darń o wszystkim, więc to chyba nie wydarzy się w najbliższym czasie:Błąd składni z emulacją "utwórz użytkownika, jeśli nie istnieje"
http://bugs.mysql.com/bug.php?id=15287
Próbuję naśladować tę funkcjonalność z następujących oświadczenie:
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;
ale MySQL narzeka składni w rachunku if
- nie widzę nic złego w tym, mam nadzieję, że ktoś inny może wskazać, na czym polega problem.
Dzięki!
... i to nie robi mieć systemowe procedury przechowywane, aby dodawać/usuwać użytkowników i nie można "przygotować" instrukcji 'create user', ponieważ nie jest ona obsługiwana. Kolejny powód, dla którego "kocham" MySQL. –
Powiedziałeś mu coś, co w zasadzie już wie, zamiast pomagać naprawić jego problem ... – Cerin