В идеале, существует конструкция SIGNAL , которую вы можете использовать для полевых ошибок логики SQL , но она недоступна до MySQL 5.5. Было бы лучше обновить до 5.5, если это вообще возможно.
РЕДАКТИРОВАТЬ: Существует не очень хорошее решение для этого до 5.5. TRIGGER работает для получения обновлений, но не для отправки их за пределы базы данных. Однако будьте осторожны, так как это не сработает, если вы обновляете через действия FOREIGN KEY, такие как CASCADE или UPDATE, так как триггеры не вызываются для этих действий. Так что следите за этим.
DELIMITER $$
CREATE TRIGGER my_trigger_name AFTER UPDATE ON my_table_name
FOR EACH ROW BEGIN
CALL my_on_update_procedure(NEW.entry_name, NEW.whatever_else)
END $$
DELIMITER ;
Что делает my_on_update_procedure, зависит от вас. Ваше решение, вероятно, является лучшей ставкой для 5.1.39 (я бы не рекомендовал блокировку из-за проблем с масштабируемостью), но 5.5 даст вам конструкцию SIGNAL, которая является именно тем, что вы хотите (так что обновляйте!).