MySQL không cho phép bạn chỉ định mệnh đề if not exists
trong tuyên bố create user
(mặc dù thực tế là create table
và create procedure
hỗ trợ điều này). Có một yêu cầu tính năng cho điều này trong năm 2005 nhưng các nhà phát triển MySQL đã làm cỏ tất cả về nó, vì vậy nó có lẽ sẽ không xảy ra bất cứ lúc nào sớm:Lỗi cú pháp với mô phỏng "tạo người dùng nếu không tồn tại"
http://bugs.mysql.com/bug.php?id=15287
Tôi đang cố gắng để bắt chước chức năng này như sau tuyên bố:
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;
nhưng MySQL phàn nàn về cú pháp trong báo cáo if
- tôi không thể nhìn thấy bất cứ điều gì sai với nó, hy vọng ai đó có thể chỉ ra những gì vấn đề là.
Cảm ơn!
... và nó không có các thủ tục lưu trữ hệ thống để thêm/xóa người dùng và bạn không thể 'chuẩn bị' câu lệnh' create user' vì nó không được hỗ trợ. Một lý do khác để "yêu" MySQL tôi đoán. –
Bạn đã nói với anh ta một cái gì đó về cơ bản anh ta đã biết, thay vì giúp sửa chữa vấn đề của mình ... – Cerin