2009-10-01 12 views
5

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!

Odpowiedz

-3

MySQL obsługuje konstrukcje kontroli przepływu tylko w procedurach przechowywanych.

+1

... 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. –

+0

Powiedziałeś mu coś, co w zasadzie już wie, zamiast pomagać naprawić jego problem ... – Cerin

Powiązane problemy