![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день, участники форума!
Помогите пожалуйста написать триггер в мускуле!
Цель данного триггера такова: есть таблица пользователей с полями логин и пароль.
Необходимо написать триггер, который при добавлении и редактировании записи будет хэшировать пароль.
примерно я себе это представляю таким образом (пример на sql server)
create trigger Ttrigger1 on User
after update, insert
as
begin
If insert begin
update user set password = md5(password)
where id_user = (select top(1) id_user from inserted)
end
else begin
update user set password = md5(select password from inserted)
where password = (select password from deleted)
end
end
конечно я не до конца уверен в правильности синтаксиса данного триггера, т.к. проверить его в данный момент не является возможным. но смысл я думаю понятен. если необходимы пояснения к данному запросу, то я всегда рад!
Неактивен
Что-то Вы совсем сложные конструкции пишете
Неактивен
Спасибо большое!
Самое интересное то, что в мускуле почему-то нельзя написать триггер одновремено и для апдейта и для инсерта)
И вот еще! спасибо за правильную мысль сравнения таблиц new и old.
Неактивен
появилась новая проблема с триггерами.
в phpmyadmin я пишу:
create trigger TCreateUser
before insert
on `user`
for each row
begin
set new.password = md5(new.password);
create user new.login@'%' identified by new.password;
grant all privileges on 'office_supplies'.* to new.login identified by new.password;
end;;
что пишет мне пхп:
SQL-запрос:
CREATE trigger TCreateUserbefore INSERT ON `user`
FOR each
ROW
BEGIN
SET new.password = md5( new.password ) ;
Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6
Моя задача такова:
при создании пользователя в приложении нужно, чтобы срабатывал триггер на добавление пользователя с доступом к бд, с хэшированием пароля и присвоением полных привилегий к бд.
Помогите пожалуйста!!!
Отредактированно kiligin (15.04.2010 11:49:23)
Неактивен
Не уверен, что phpmyadmin умееет корректно жевать delimiterы. Воспользуйтесь
нормальным клиентом MySQL.
Неактивен
т.е. ручками! )) спасибо! я знал, что возможности мускула больше, чем они доступны через пхп...
Неактивен