Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Триггер на вставку в другую таблицу


Автор: Alex_B 1.11.2007, 14:40
Есть таблица catalogue, есть еще таблица mylogs.

Пытаюсь написать триггер для таблицы catalogue, которой бы записывал что-либо (сейчас все равно что, а вообще надо имя польтзователя БД) в таблицу mylogs.

Код

CREATE TRIGGER logINS
BEFORE INSERT ON catalogue 
  FOR EACH ROW BEGIN
    // с этого места код не верный
    // я попытался написать что в итоге нужно
    INSERT INTO mylogs SET user = UUID();
  END


Помогите пожалуйста разобраться как будет выглядеть верный запрос.

Автор: Alex_B 1.11.2007, 15:20
Вот такой запрос на создание триггера работает:

Код

CREATE TRIGGER user_insertt BEFORE INSERT ON `catalogue`
FOR EACH ROW
INSERT INTO mmmylogs
  SET user=USER();



А вот такой нет

Код

CREATE TRIGGER user_insertt BEFORE INSERT ON `catalogue`
FOR EACH ROW
BEGIN
  INSERT INTO mmmylogs
  SET user=USER();
END


В чем может быть причина?

Автор: Alex_B 1.11.2007, 15:48
Вобщем я разобрался, может кому еще пригодится.

MySQL 5.0.18

Для создания триггера выполняющего несколько операций не нужно указывать BEGIN и END
(в мануале кстати говорится обратное)

Т.е. вот тако триггер работает как надо:

Код

CREATE TRIGGER user_insertt BEFORE INSERT ON `table1`
FOR EACH ROW
  INSERT INTO table2 SET user=USER();
  INSERT INTO table3 SET user=USER();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)