Страница 1 из 1

Триггеры в MySQL

Добавлено: 2010-09-18 21:55:00
Gamerman
В sql-файле приписано

Код: Выделить всё

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=CURRENT_USER*/ /*!50003 TRIGGER `trklient` BEFORE update ON `klient`
FOR EACH ROW
begin  
   INSERT INTO `logklient` select *, now() as timeaction, 'update' as action, user() as actionuser from klient where unklient=old.unklient;
end */;;
DELIMITER ;
Создаю таблицу и триггеры. Потом делаю mysqldump и получаю:

Код: Выделить всё

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`ODBC`@`localhost`*/ /*!50003 TRIGGER `trklient` BEFORE update ON `klient`
FOR EACH ROW
begin  
   INSERT INTO `logklient` select *, now() as timeaction, 'update' as action, user() as actionuser from klient where unklient=old.unklient;
end */;;
DELIMITER ;
Почему он пишет DEFINER=`ODBC`@`localhost` вместо DEFINER=CURRENT_USER?

Re: Триггеры в MySQL

Добавлено: 2010-09-18 22:39:50
Gamerman
Немного прояснил. Этот параметр пишется в зависимости от того, под каким юзером делается подключение при создании тригера. Но разве это так должно быть?

Re: Триггеры в MySQL

Добавлено: 2010-09-19 13:30:34
Gamerman
Gamerman писал(а):Немного прояснил. Этот параметр пишется в зависимости от того, под каким юзером делается подключение при создании тригера. Но разве это так должно быть?
Разобрался. Не верно понял логику параметра.