MySQL使用触发器禁止某行数据某些列的修改
起因是有来线上演示环境的系统管理员账号经常被禁用导致登录不了,然后需要手动恢复数据状态才行。
原理是利用触发器的旧数据覆盖新数据
delimiter $
CREATE TRIGGER`sys_user_2_update`
BEFORE UPDATE ON`sys_user`FOR EACH ROW
BEGIN
IF NEW.id = 2 THEN
SET NEW.status=OLD.status,NEW.deleted=OLD.deleted;
END IF;
END;