у мене виникають проблеми при спробі оновити полетаблиці після оновлення іншого стовпця тієї ж таблиці. Я знаю, що я не можу виконати активатор в одній таблиці, яку я оновлюю, але мені потрібно знайти фокус, щоб зробити це.
Наприклад, мій стіл:
ParentName | Age | Update_date
John 12 2014-12-01
Eric 23 2014-4-01
Jack 32 2014-5-01
Jill 33 2014-2-01
після оновлення age
, мені потрібно оновити update_date
, у моїй реальній ситуації я не можу зробити це безпосередньо з запиту на оновлення, оскільки я хочу, щоб це правило працювало не залежно від того, як я оновлюю таблицю.
Я намагаюся зробити це за допомогою збережених процедур, але я їх не дуже добре знаю.
Хтось має якусь ідею чи може пояснити мені, як це зробити за допомогою розмитої процедури?
Відповіді:
0 для відповіді № 1Ваш тригер може бути таким:
DELIMITER //
CREATE TRIGGER persons_updt BEFORE UPDATE ON persons
FOR EACH ROW
IF (NEW.age <=> OLD.age) THEN SET NEW.Update_date=current_date();
END IF//
DELIMITER ;
Тут я використовую нульовий безпечний оператор <=>. Будь ласка, перегляньте скрипку тут.