Что не так с этим триггером? После вставки обновления

У меня проблема с простым триггером в MySQL.

DELIMITER $$
CREATE TRIGGER cust_tracer
AFTER INSERT ON custom_values 
FOR EACH ROW
BEGIN
  UPDATE 'custom_values' set 

  (VALUE = CONCAT('https://tracker.123e33.eu/view.php?id=', VALUE))
  where custom_field_id=84;

  END$$

VALUE — это столбец в таблице custom_values ​​с именем VALUE.

Я получил следующую ошибку:

#1064 - У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с набором ''custom_values'
VALUE = CONCAT('https://tracker.123e33.eu/view.php?id=' в строке


person Artur Stolc    schedule 26.04.2019    source источник
comment
Удалите скобки вокруг присваивания.   -  person sticky bit    schedule 26.04.2019
comment
Вы должны указать, какая у вас точная проблема.   -  person sticky bit    schedule 26.04.2019
comment
#1064 - У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с ''custom_values' set VALUE = CONCAT('tracker.123e33.eu/view.php?id=' в строке   -  person Artur Stolc    schedule 26.04.2019
comment
Не в комментариях. Редактируйте свой вопрос и добавьте туда информацию.   -  person sticky bit    schedule 26.04.2019
comment
И удалите одинарные кавычки вокруг имени таблицы.   -  person sticky bit    schedule 26.04.2019
comment
Вы не можете воздействовать на таблицу, вызвавшую срабатывание триггера, в триггере. Похоже, это должен быть триггер перед вставкой, где вы можете изменить NEW. значения   -  person P.Salmon    schedule 26.04.2019
comment
И триггер мне кажется странным. Каждый раз, когда вы вставляете новую строку в таблицу, вам нужен столбец одной строки с префиксом этого фрагмента URL? Поэтому через некоторое время это значение будет иметь этот префикс много раз. Это действительно то, чего вы хотите достичь?   -  person sticky bit    schedule 26.04.2019
comment
Да, значение простое: 133214 результатом будет tracker.123e33.eu/view.php?id=133214, это будет URL-ссылка :)   -  person Artur Stolc    schedule 26.04.2019
comment
И после следующей вставки будет tracker.123e33.eu/view.php?id=tracker.123e33.eu/view.php?id=133214   -  person sticky bit    schedule 26.04.2019
comment
ПОСЛЕ ВСТАВКИ НА ?? теперь есть вставка или обновление   -  person Artur Stolc    schedule 26.04.2019


Ответы (1)


Удаление круглых скобок вокруг инструкции SET решит проблему.

Блок запроса будет:

BEGIN
   UPDATE `custom_values` SET
   VALUE = CONCAT('https://tracker.123e33.eu/view.php?id=', VALUE)
   WHERE custom_field_id = 84;
END$$
person Arulkumar    schedule 26.04.2019
comment
все еще: #1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с ''custom_values' set VALUE = CONCAT('tracker.123e33.eu/view.php? в строке 5 - person Artur Stolc; 26.04.2019
comment
@ArturStolc Вы пробовали как UPDATE `custom_values` SET или UPDATE custom_values SET - person Arulkumar; 26.04.2019
comment
Да, теперь у меня есть DELIMITER $$ CREATE TRIGGER cust_tracer ПОСЛЕ ВСТАВКИ В custom_values ​​ДЛЯ КАЖДОЙ СТРОКИ НАЧАТЬ ОБНОВЛЕНИЕ easy.custom_values ​​set VALUE = CONCAT('tracker.123e33.eu/view.php?id=', VALUE), где easy.custom_field_id=84; END$$ #1064 - Ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 8 - person Artur Stolc; 26.04.2019