Как назначить минимальный результат функции для нового столбца с запасным значением в триггере MySql? - PullRequest
0 голосов
/ 13 июня 2019

Необходимо установить для столбца значение MIN(ID) или, если оно равно нулю, значение LAST_INSERT_ID(). Все это должно быть сделано в триггере.

Рассмотрим код:

CREATE TRIGGER min_id_trigger BEFORE INSERT ON MyTable
    FOR EACH ROW BEGIN
    SET NEW.min_id = (select case when MIN(id) IS NULL then LAST_INSERT_ID() else MIN(id) FROM MyTable WHERE some_where_col = NEW.some_where_col);
END;

Это дает мне ошибку:

[2019-06-13 19:10:05] [42000][1064] 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 'FROM MyTable WHERE some_where_col = NEW.some_where_col);
[2019-06-13 19:10:05] END' at line 3

Похоже на хитрый синтаксис для select, case when и триггера в MySql.

Кто-нибудь может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...