mysql 触发器

创建触发器

  • 这个需要使用 mysql 触发器,用户删除数据时检测删除的是不是我们设置禁止删除的数据,如果是,则报错,禁止用户删除
mysql 复制代码
DELIMITER $$
# prevent_delete_row 触发器名称
CREATE TRIGGER prevent_delete_row 
# kaili_erp.employee 数据库和表名
BEFORE DELETE ON kaili_erp.employee 
FOR EACH ROW 
BEGIN
    DECLARE msg VARCHAR(255);
    # OLD.字段名 = 值
    IF OLD.uid = '10000' THEN
		# 错误提示消息
        SET msg = 'Cannot delete this row!';
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg;
    END IF;
END;
$$
DELIMITER ;

如果要创建禁止修改的触发器,仅需把 BEFORE DELETE ON 换成 BEFORE UPDATE ON 就可以了

删除触发器

  • 查看已有触发器
mysql 复制代码
SHOW TRIGGERS;
  • 删除触发器
mysql 复制代码
# `trigger_name` 是要删除的触发器名称
# `IF EXISTS` 可以加上,以避免尝试删除不存在的触发器时出现错误
DROP TRIGGER [IF EXISTS] trigger_name;
相关推荐
极光通讯几秒前
国产存储替代进展:长鑫DDR5与长江存储企业级SSD的适配现状
服务器·数据库·内存
Mortalbreeze3 分钟前
MySQL 基础篇(十):用户管理
数据库·mysql
小冯不疯4 分钟前
物料主数据同步实战:从金蝶云星空到小满OKKICRM的单一策略深度拆解
java·大数据·数据库
Ivanqhz16 分钟前
超参数考量与设计
数据库·人工智能·深度学习·算法·机器学习
张小姐的猫23 分钟前
【MySQL】表的约束
android·linux·服务器·数据库·c++·mysql·adb
爱吃牛肉的大老虎30 分钟前
Redis之分布式 Session问题
数据库·redis·分布式
guo_wen_qiang32 分钟前
mongodb集群模式的原理
服务器·数据库·mongodb
captain37636 分钟前
Spring Boot日志
java·数据库·spring boot
阿标在干嘛40 分钟前
分布式锁的“场景适配“:我们为什么在部分链路中选择了数据库乐观锁?
数据库·分布式
jiidd42 分钟前
关于SQL SERVICE数据库里换行问题
数据库·sql·oracle