SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.08.2017 12:47:37

arias
Участник
Зарегистрирован: 02.08.2017
Сообщений: 1

MySQL тригерры и переменные в них

Добрый день, всем!

Помогите найти ошибку, в триггерах почти новичок. Есть вот такой запрос на создание триггера:

DELIMITER $$
CREATE TRIGGER `trigger_create_file` BEFORE INSERT ON `outgoing`
FOR EACH ROW
BEGIN
  IF NEW.`operator` != "0" THEN BEGIN
set @file = (SELECT concat("/tmp/", NEW.`phone_number`, ".call"));
select concat("Channel: SIP/", operator), "MaxRetries: 3", "RetryTime: 30",
"WaitTime: 60", "Context: outrt-8", concat("Extension: ", phone_number),
"Priority: 1", "Archive: yes" from outgoing where `status` = "wait" and
`phone_number` = NEW.`phone_number` into outfile @file;
  END; END IF;
END$$

Суть в следующем, при добавлении записи в таблицу создать файл на диске, но имя файла не статическое, а зависит от значения переменной в этом и проблема, со статическим именем файла проблем никаких нет.

Вывод ошибки:

mysql> DELIMITER $$
mysql> CREATE TRIGGER `trigger_create_file` BEFORE INSERT ON `outgoing`
    -> FOR EACH ROW
    -> BEGIN
    ->   IF NEW.`operator` != "0" THEN BEGIN
    -> set @file = (SELECT concat("/tmp/", NEW.`phone_number`, ".call"));
    -> select concat("Channel: SIP/", operator), "MaxRetries: 3", "RetryTime: 30",
    -> "WaitTime: 60", "Context: outrt-8", concat("Extension: ", phone_number),
    -> "Priority: 1", "Archive: yes" from outgoing where `status` = "wait" and
    -> `phone_number` = NEW.`phone_number` into outfile @file;
    ->   END; END IF;
    -> END$$
ERROR 1064 (42000): 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 '@file;
  END; END IF;
END' at line 9
mysql>

Неактивен

 

#2 03.08.2017 01:40:43

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5828

Re: MySQL тригерры и переменные в них

используйте подготовленные выражения
http://sqlinfo.ru/forum/viewtopic.php?id=363

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson