Для решения задачи может быть использован триггер.
Решение 1. Более простое, но может давать дубликаты в конкурентной среде.
CREATE TRIGGER tr_name
BEFORE INSERT
ON articles
FOR EACH ROW
SET NEW.image = CONCAT('catalog/blog-image/', COALESCE((SELECT 1 + MAX(SUBSTRING_INDEX(image, '/', -1)) FROM articles), 1), '.jpg');
DEMO
Решение 2.Устойчиво в конкурентной среде.
Создаётся опорная таблица генерируемых номеров:
CREATE TABLE image_counter (id INT AUTO_INCREMENT PRIMARY KEY);
Триггер использует таблицу для генерации:
CREATE TRIGGER tr_name
BEFORE INSERT
ON articles
FOR EACH ROW
BEGIN
INSERT INTO image_counter VALUES (DEFAULT);
SET NEW.image = CONCAT('catalog/blog-image/', LAST_INSERT_ID(), '.jpg');
DELETE FROM image_counter;
END
DEMO