Перейти к содержанию

Использование триггеров в MySQL

Бывает удобно при вводе или редактировании таблицы автоматически формировать некоторые поля. Например, при вводе полей "фамилия", "имя" и "отчество", было бы удобно автоматически формировать поля "полное ФИО" и "сокращенное ФИО".

В первом поле фамилия, имя и отчество должны указываться полностью, разделяемые пробелом. Во втором поле должна быть указана фамилия и через пробел инициалы.

Чтобы это сделать, нужно добавить триггер для операций INSERT и UPDATE, срабатывающий перед событием (BEFORE) со следующим содержимым:

BEGIN
SET NEW.f_name = CONCAT_WS(' ', TRIM(NEW.name), TRIM(NEW.m_name), TRIM(NEW.l_name));
SET NEW.s_name = CONCAT(TRIM(NEW.l_name), ' ', TRIM(LEFT(NEW.name, 1)), '. ', TRIM(LEFT(NEW.m_name, 1)), '.');
END