После вставки записи, если поле артикул (varchar) пусто - надо заполнить полем id, увеличив его на 20000. Создаю триггер: Код: DROP TRIGGER IF EXISTS `after_insert_product`; DELIMITER // CREATE TRIGGER `after_insert_product` AFTER INSERT ON `tbl_product` FOR EACH ROW BEGIN UPDATE `tbl_product` SET `artikul` = CONCAT(20000 + NEW.id) WHERE `artikul` = '' AND id = NEW.id; END // DELIMITER ; Почему триггер не заполняет артикул? Пробовал запросы: Код: UPDATE `tbl_product` SET `artikul` = CONCAT(20000 + NEW.id) WHERE `artikul` = '' OR `artikul` IS NULL; UPDATE `tbl_product` SET `artikul` = CONCAT(20000 + NEW.id) WHERE `artikul` = ''; Последний запрос запущенный вручную - обновляет артикулы, а в триггере не работает.
Можно подробнее? Я как понимаю: "AFTER INSERT" после того как запись уже создана в таблице `tbl_product` обновить эту запись данными из нее. Если же делать INSERT то как узнать ID?
AFTER UPDATE? https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html LAST_INSERT_ID() функция выдаст id последней вставленной записи