关于NAVICAT数据表触发器的使用

此篇文章包括触发器使用删除、更新、插入的方法

1.新建一个数据表或者使用一个无用的数据表,点击设计表

2.点击触发器

3.创建触发器,如图:

(1)删除:(里面的数据自行修改)

CREATE TRIGGER `test2` AFTER DELETE ON `test2` FOR EACH ROW 
BEGIN 
    DELETE FROM score WHERE name = NAME;
END;

(2)更新:

CREATE TRIGGER `test2` AFTER UPDATE ON `test2` FOR EACH ROW BEGIN
    UPDATE score SET name  = new.NAME WHERE NAME = old.NAME;
END;

(3)插入:

CREATE TRIGGER `test3` BEFORE INSERT ON `test2` FOR EACH ROW BEGIN
    if new.age<20 THEN SET new.age =20;
  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、付费专栏及课程。

余额充值