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

怎么用触发器改变或者取消INSERT, UPDATE以及DELETE语句
给我个详细代码
我的数据库是MySql

不知道你什么数据库.
如果是 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

温馨提示:答案为网友推荐,仅供参考
相似回答