MySQL中有時候需要禁止某個字段被修改,例如某些敏感信息或者主鍵等。那么如何實現該功能呢?這里介紹兩種方法:
方法一:使用TRIGGER。
DELIMITER $$ CREATE TRIGGER disable_update_trigger BEFORE UPDATE ON table_name FOR EACH ROW BEGIN IF NEW.column_name<>OLD.column_name THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Update not allowed'; END IF; END $$ DELIMITER ;
將上述代碼中table_name替換為目標表名,將column_name替換為需要禁止修改的字段名。這樣,當執行UPDATE操作時,如果包含需禁止修改字段的更新操作,就會拋出異常。
方法二:使用BEFORE UPDATE的TRIGGER。
ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK (column_name = old_value) BEFORE UPDATE;
如上述代碼所示,將table_name和column_name替換為目標表名和需要控制的字段名,old_value替換為禁止修改的值。執行該代碼后,在執行UPDATE操作時,若包含更新該字段的操作,則會拋出異常。
上一篇css中 的區別
下一篇mysql某個字段不包含