Необходимо установить для столбца значение 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.
Кто-нибудь может помочь?