Você pode criar um BEFORE INSERT trigger e um BEFORE UPDATE trigger para definir o campo de nome para o valor de CONCAT_WS(' ', first_name, middle_name, last_name) como segue... mas não faça isso. É uma ideia terrível. Não armazene a coluna de nome. Quando você quiser selecionar o nome, basta selecionar CONCAT_WS(' ', first_name, middle_name, last_name) AS full_name.
Observe que CONCAT retornará null se algum dos valores que você estiver concatenando for null, então você provavelmente deseja usar CONCAT_WS (com separador) - se qualquer valor na lista for null, ele apenas omitirá esse valor e usará os restantes.
Seus gatilhos podem ficar assim se você decidir fazer isso:
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 isso ajude.