SQL триггер для установки значения поля из другого поля - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь установить триггер для sql, чтобы обновить значение gf значением из поля "title" внутри таблицы c_p_r, но получаю ошибку в синтаксисе. Может кто-нибудь указать мне, где я не прав?

  CREATE TRIGGER setgf
    AFTER UPDATE ON c_p_r
    FOR EACH ROW BEGIN
      TRUNCATE gf
      UPDATE gf
      SET gf = title
      FROM c_p_r

Эта вещь отвечает мне

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UPDATE gf
  SET gf = title
  FROM c_p_r' at line 5

Может кто-нибудь указать мне, где я не прав?

1 Ответ

0 голосов
/ 30 июня 2018

Ваш UPDATE sql запрос искажен. Также, если вы пытаетесь скопировать одно значение поля в другое поле во время обновления. Вы должны использовать обработчик BEFORE UPDATE. Я бы написал запрос, как показано ниже:

 CREATE TRIGGER setgf
    BEFORE UPDATE ON c_p_r
    FOR EACH ROW BEGIN
      SET NEW.gf = COALESCE(NEW.gf, NEW.title); //this will take care of not overriding the gf if it was part of update statement
    END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...