MySQL 触发器是一个在特定事件发生时自动执行的程序。可以通过编写触发器来处理数据库中的数据。本文将介绍如何使用触发器阻止 MySQL 中的字段修改。
只允许 INSERT 操作的表可以使用 BEFORE INSERT 触发器,只允许 UPDATE 操作的表可以使用 BEFORE UPDATE 触发器。
CREATE TRIGGER trigger_name BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
IF NEW.column_name'desired_value' THEN
SET NEW.column_name = 'desired_value';
END IF;
END;
上面的代码创建了一个名为 trigger_name 的 BEFORE INSERT 触发器,在 table_name 表中插入每一行之前,判断 column_name 的值是否为所期望的值(desired_value),否则将其设置为所需值。
CREATE TRIGGER trigger_name BEFORE UPDATE ON table_name
FOR EACH ROW
BEGIN
IF NEW.column_nameOLD.column_name THEN
SET NEW.column_name = OLD.column_name;
END IF;
END;
上面的代码创建了一个名为 trigger_name 的 BEFORE UPDATE 触发器,在 table_name 表中更新每一行之前,判断 column_name 的值是否与原始值相同,否则将其设置为原始值。
使用触发器可以轻松地阻止 MySQL 中的字段修改,确保数据的有效性和一致性。