触发器的使用

本文介绍了一种在对重要表中的数据进行更改或删除前,利用触发器将原有数据自动备份到另一个表的方法。通过创建名为EMP_OLD的表来保存EMP表修改前的数据。
问题提出:
        对某个重要表中的数据进行更改和删除之前,希望将老的数据写入另一张表中。
解决办法:
        使用触发器
实验过程:
       (1)表EMP为进行DML操作的表,表EMP_OLD保持EMP表更改、删除之前的数据。
               /*创建EMP_OLD表 */
              SQL>CREATE TABLE  EMP_OLD AS SELECT * FROM EMP WHERE ROWNUM<1;
              SQL>ALTER TABLE EMP_OLD

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10537377/viewspace-706746/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10537377/viewspace-706746/

### 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]。 #### 错误处理机制 如果在一个事务期间触发了某个带有错误条件判断逻辑的触发器,则整个事务将会回滚以保持数据一致性。这意味着任何违反预设规则的操作都不会影响已有的数据状态。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值