触发器的使用

建立数据库和数据表

创建一个数据库

建立两个表 

一、创建触发器

点击设计表,然后点击触发器

插入使用触发词(BEFORE)更新和删除使用触发词(AFTER)

二、创建插入、更新、删除语句

1、插入(Insert),如test1、test4

Navicat语句代码如下(test1)

BEGIN
	UPDATE score SET student_id = new.student_id WHERE student_id = old.student_id;
END

 运行结果如下

然后在新建查询输入如下代码

UPDATE score SET student_id = 2022054066 WHERE student_id = 2022054067;

2、更新(Update),如test3

Navicat语句代码如下:

BEGIN
	UPDATE score SET student_id = new.student_id WHERE student_id = old.student_id;
END

 结果如下

 然后在新建查询输入如下代码

UPDATE score SET student_id = 2022054066 WHERE student_id = 2022054067;

 结果如下

 

3、删除(Delete),如test4

Navicat语句代码如下:

BEGIN 
    DELETE FROM score WHERE student_id = old.student_id;
END;

 

然后再新建查询输入如下代码,运行结果如下

4、另一种插入(test2)
BEGIN 
  IF new.student_sex ='男' THEN SET  new.student_sex = '男性';
    END if ;
    IF new.student_sex ='女' THEN SET  new.student_sex = '女性';
    END if;
END

在新建查询中输入如下代码

  IF new.student_sex ='男' THEN SET  new.student_sex = '男性';
    END if ;
    IF new.student_sex ='女' THEN SET  new.student_sex = '女性';
    END if;
END;

 

### Navicat 中 MySQL 触发器使用教程 #### 创建触发器的一般流程 创建触发器的过程涉及多个步骤,在Navicat Premium环境中,可以通过图形界面轻松完成这些操作。首先打开目标数据库连接并导航到所需的表[^1]。 对于具体的实现方式,假设正在使用的示例数据库为Sakila,其中包含了模拟DVD租赁业务的各种表格结构[^2]。现在考虑这样一个场景:每当有新的电影被加入`film`表时,希望自动更新另一个统计信息表中的相应条目;为此目的而设计的一个简单触发器可能看起来像这样: ```sql CREATE TRIGGER add_film_trigger AFTER INSERT ON film FOR EACH ROW BEGIN -- 假设存在名为 'statistics' 的表用来保存统计数据 UPDATE statistics SET total_films = total_films + 1 WHERE id = NEW.rating; END; ``` 上述SQL语展示了如何定义一个名为 `add_film_trigger` 的触发器,该触发器会在每次向 `film` 表插入新行之后执行,并且会根据新增加影片的评级字段(`rating`)去修改对应的分类计数器[^4]。 #### 使用 INSTEAD OF 类型触发器 除了常见的 BEFORE 和 AFTER 类型外,MySQL 还支持一种特殊形式——INSTEAD OF 触发器,这主要用于处理视图上的 DML 操作。不过需要注意的是,这类触发器仅适用于某些特定版本和支持此特性的DBMS上[^3]。 #### 错误处理机制 如果在一个事务期间触发了某个带有错误条件判断逻辑的触发器,则整个事务将会回滚以保持数据一致性。这意味着任何违反预设规则的操作都不会影响已有的数据状态。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值