如何利用ORACLE触发器对新插入的记录,在符合一定条件时立即将其删除?

比如:表aa中,新插入一条记录或批量插入记录,表aa中字段a1有的值为1,有的为2,有的为3,现在要触发器实现:当插入后立即进行判断,发现a1的值为1时,立即进行删除,仅... 比如:表aa中,新插入一条记录或批量插入记录,表aa中字段a1有的值为1,有的为2,有的为3,现在要触发器实现:当插入后立即进行判断,发现a1的值为1时,立即进行删除,仅保留2或3的数据。 展开
 我来答
renfengjun1986
推荐于2018-03-04 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
采纳数:925 获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:

向TA提问 私信TA
展开全部
强烈不建议使用这种方法,完全可以在触发器中判断后阻止插入的动作。

例子如下:
create or replace trigger tri_a
before insert on a
for each row
when (条件)
begin
raise_application_error(-20999,'Can't insert on this table . xxxxxxxxx .');
end;

不过非要按照你的想法实现,也可以,不过比较麻烦。
需要创建一个行级触发器以及一个表级触发器,还有一个用于存放表中主键的包变量。
更多追问追答
追问
但阻止插入后客户端总不停地重复插入
怎么处理这种情况
射手小小王
推荐于2016-11-15 · TA获得超过398个赞
知道小有建树答主
回答量:716
采纳率:85%
帮助的人:263万
展开全部
建议采用BEFORE触发器,在触发器中对相应数据进行判断,如果不符合就直接抛异常之类的,避免插入;
如果是采用AFTER触发器,插入后,要写两次日志;
触发器中是不能有事务操作之类的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
17号观察室
2014-03-21 · TA获得超过5730个赞
知道大有可为答主
回答量:3666
采纳率:66%
帮助的人:1362万
展开全部
设计思路不是最好的,直接判断条件符合就插入,没必要插入了再删除,很累赘
更多追问追答
追问
问题是插入不成功客户端总是重复提交插入,怎么办
追答
代码里面 弹出提示啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式