MySQL某个字段不让修改

更新时间:02-09 教程 由 迷糊 分享

MySQL中有时候需要禁止某个字段被修改,例如某些敏感信息或者主键等。那么如何实现该功能呢?这里介绍两种方法:

方法一:使用TRIGGER。

DELIMITER $$CREATE TRIGGER disable_update_trigger BEFORE UPDATE ON table_nameFOR EACH ROWBEGINIF NEW.column_name<>OLD.column_name THENSIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Update not allowed';END IF;END $$DELIMITER ;

将上述代码中table_name替换为目标表名,将column_name替换为需要禁止修改的字段名。这样,当执行UPDATE操作时,如果包含需禁止修改字段的更新操作,就会抛出异常。

方法二:使用BEFORE UPDATE的TRIGGER。

ALTER TABLE table_nameADD CONSTRAINT constraint_nameCHECK (column_name = old_value)BEFORE UPDATE;

如上述代码所示,将table_name和column_name替换为目标表名和需要控制的字段名,old_value替换为禁止修改的值。执行该代码后,在执行UPDATE操作时,若包含更新该字段的操作,则会抛出异常。

声明:关于《MySQL某个字段不让修改》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2259267.html