Итак, у меня есть таблица MySQL, называемая сотрудниками.MySQL ПЕРЕД ДОПОЛНИТЕЛЬНЫМ триггером - значение изменения
ID name meta
0 jack ok
1 anne del
Я хочу написать триггер, который предотвращает строку, где meta = 'del', чтобы обновить мета-поле. Так что, если я делаю:
UPDATE employees SET meta = 'busy' WHERE ID = 0
Строка должна быть обновлена и мета будет «занят»
Но когда я делаю:
UPDATE employees SET meta = 'busy' WHERE ID = 1
Мета поле должно еще быть «дель '
Я пробовал:
delimiter $$
CREATE TRIGGER updateEmployees
BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
IF OLD.meta = 'del' THEN
NEW.meta = 'del'
END IF;
END$$
delimiter ;
Но MySQL возвращается с синтаксической ошибкой. Есть идеи?
Триггер по-прежнему не работает, но я решил пойти со своим вторым решением. Спасибо! –
добро пожаловать ': D' –
Почему ТРИГГЕР злой? Это очень мощный инструмент, который администраторы базы данных могут использовать для обеспечения соблюдения правил целостности данных. В среде, где целостность данных имеет первостепенное значение (например, корпоративные записи) Триггеры предоставляют ценный ресурс для обеспечения этого, даже для разработчиков приложений. Я использую триггеры сейчас даже в своем личном развитии, поскольку они обеспечивают целостность данных для меня при небольшой накладной производительности, которая в любом случае будет потеряна приложением, выполняющим ту же проверку ... – lassombra