Puede crear un disparador ANTES DE INSERTAR y un disparador ANTES DE ACTUALIZAR para establecer el campo de nombre en el valor de CONCAT_WS(' ', first_name, second_name, last_name) de la siguiente manera... pero no haga eso. Es una idea terrible. No almacene la columna de nombre en absoluto. Cuando desee seleccionar el nombre, simplemente seleccione CONCAT_WS(' ', nombre, segundo nombre, apellido) COMO nombre completo.
Tenga en cuenta que CONCAT devolverá nulo si alguno de los valores que está concatenando es nulo, por lo que probablemente desee usar CONCAT_WS (con separador) en su lugar; si algún valor en la lista es nulo, simplemente omitirá ese valor y usará los restantes.
Tus disparadores podrían verse así si decidieras hacer eso:
CREATE TRIGGER name_update BEFORE UPDATE ON member
FOR EACH ROW
BEGIN
SET NEW.name = CONCAT_WS(' ', NEW.first_name, NEW.middle_name, NEW.last_name);
END;
CREATE TRIGGER name_insert BEFORE INSERT ON member
FOR EACH ROW
BEGIN
SET NEW.name = CONCAT_WS(' ', NEW.first_name, NEW.middle_name, NEW.last_name);
END;
Espero que eso ayude.