Как мне создать этот триггер MySQL? - PullRequest
1 голос
/ 28 апреля 2011

У меня есть таблица с именем customer, в которой, помимо прочего, есть столбец с именем name и столбец с именем first_name_start. Я хочу, чтобы first_name_start было равно SUBSTRING(name, 1, 4). Как бы я создал триггер, который обеспечит это?

Ответы [ 2 ]

3 голосов
/ 28 апреля 2011
DELIMITER $$

CREATE TRIGGER trigger_name BEFORE INSERT ON your_table
FOR EACH ROW 
BEGIN
  SET NEW.first_name_start = SUBSTRING(NEW.name, 1, 4);  
END$$

CREATE TRIGGER trigger_name BEFORE UPDATE ON your_table
FOR EACH ROW 
BEGIN  
  SET NEW.first_name_start = SUBSTRING(NEW.name, 1, 4);
END$$

DELIMITER ;

К сожалению, у меня не было времени проверить это, это может быть совершенно неправильно.

0 голосов
/ 28 апреля 2011

Почему бы просто не создать представление, которое добавляет first_name_start, если оно вам действительно нужно в виде столбца? Тогда вы не будете хранить избыточные данные, но сможете использовать их так, как если бы вы были.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...