触发器改变或者取消INSERT, UPDATE以及DELETE语句

怎么用触发器改变或者取消INSERT,UPDATE以及DELETE语句给我个详细代码我的数据库是MySql... 怎么用触发器改变或者取消INSERT, UPDATE以及DELETE语句
给我个详细代码
我的数据库是MySql
展开
 我来答
wangzhiqing999
2011-05-31 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3262万
展开全部
不知道你什么数据库.
如果是 Oracle 数据库的话。
如果要 改变 INSERT, UPDATE
那么用 BEFORE FOR EACH ROW 的触发器
通过在触发器里面, 修改 :new 中的数据, 实现 更改 INSERT UPDATE 的数据。
举个例子来说,就是 插入的时候,数据是1的, 你触发器把1修改成2,最后写到数据库中,结果是2。
DELETE 触发器没法 改变, 因为数据是删除的。

至于要 取消INSERT, UPDATE以及DELETE语句
只需要在触发器中, 抛出异常, 就会自动导致事务回滚,从而取消操作。

例如在 INSERT, UPDATE以及DELETE 的触发器中,只有这么一行

-- 错误代码允许的范围是 -20,000~20,999
RAISE_APPLICATION_ERROR(-20000, '触发器取消了操作!');

那么最后对这个表的所有的 INSERT, UPDATE以及DELETE 操作,都直接因为出错,而无法更新数据库表了。

参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/2348e20a399e1dc47bcbe18f.html

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式