首页 > 其他分享 >怎样在触发器中删除刚刚录入但是不合法的记录?

怎样在触发器中删除刚刚录入但是不合法的记录?

时间:2023-09-18 10:02:44浏览次数:36  
标签:tmp northsnow 触发器 删除 trg rowid 录入 tb


建立一个临时表:

CREATE  GLOBAL  TEMPORARY  TABLE  northsnow_tmp(  
       northsnow_id varchar2(20))ON  COMMIT  DELETE  ROWS;

在业务表上创建一个行级触发器:

create  or  replace  trigger trg_northsnow    
      after  insert  on  tb_northsnow
          for  each  row  
     begin  
 if  :new.column_a='japan'  then  
 insert into  northsnow_tmp  values(:new.rowid);  
   end  if;  
 end  trg_northsnow  ;

    
在创建一个表级触发器:

create  or  replace  trigger  trg_northsnow_del  
   after  insert  on  tb_northsnow 
    begin  
 delete  from  tb_northsnow  where  exists(select  1  from  northsnow_tmp  where  northsnow_id=tb_northsnow.rowid);  
   end  trg_northsnow_del;



这样当你插入一条 column_a为japan的记录时,将会在行级触发器进行检查,并将rowid存入临时表,然后在触发的表级触发器中删除该记录。

标签:tmp,northsnow,触发器,删除,trg,rowid,录入,tb
From: https://blog.51cto.com/u_8215601/7507426

相关文章

  • 触发器中调用远程链接的数据库的配置方法
    一般我们要保证两台机器可以互通。并且两台机器上都安装并启动了msdtc.当然不是安装并启动了msdtc就可以的。我们可能还要做一些配置。1、运行regedt32,浏览至HKEY_LOCAL_MACHINEoftware/Microsoft/MSDTC。添加一个DWORD值TurnOffRpcSecurity,值数据为1。2、重启MSDTC服务。3......
  • TienChin 渠道管理-删除渠道
    更改一下菜单权限,将删除渠道的delete改为remove:ChannelController.java@PreAuthorize("hasPermission('tienchin:channel:remove')")@Log(title="渠道管理",businessType=BusinessType.DELETE)@DeleteMapping("/{channelIds}")AjaxResult......
  • 2020-2-3-coding删除迭代
    layout:posttitle:coding删除迭代categories:coding-posttag:codingapicoding删除迭代接口URLhttps://<team-name>.coding.net/api/project/<project-id>/iterations/<iterations_id>请求方式DELETE请求header参数:cookie:eid成功返回参数参数示例值参数描......
  • pandas实现读取excel并删除第一条内容再保存
    想要实现的是,获取excel的第一条信息之后,把原excel的信息保存。再读取,再保存,这样,每次读取到的信息都是新的信息。工作需要大量的输入证件号查询信息,这样就避免了手动输入。importnumpyasnpimportpandasaspdimportopenpyxlimporttimelianxi=pd.read_excel('./练习.xl......
  • 【LeetCode】删除数对后的最小数组长度
    题目给你一个下标从0开始的非递减整数数组nums。你可以执行以下操作任意次:选择两个下标i和j,满足i<j且nums[i]<nums[j]。将nums中下标在i和j处的元素删除。剩余元素按照原来的顺序组成新的数组,下标也重新从0开始编号。请你返回一个整数,表示执行......
  • openGauss学习笔记-71 openGauss 数据库管理-创建和管理普通表-删除表中数据
    openGauss学习笔记-71openGauss数据库管理-创建和管理普通表-删除表中数据在使用表的过程中,可能会需要删除已过期的数据,删除数据必须从表中整行的删除。SQL不能直接访问独立的行,只能通过声明被删除行匹配的条件进行。如果表中有一个主键,用户可以指定准确的行。用户可以删除匹配......
  • 删除重复纪录
    删除重复纪录 学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录。后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录;还可以建临时表来实现...这个只提到其中的几种简单实用的方法,希望可以和大家分享(以表employee为......
  • 50-集合-特点-创建和删除-交集并集差集运算
          ......
  • 45-字典-元素的添加-修改-删除
           ......
  • 35-列表-元素删除的3种方式-删除本质是数组元素拷贝
        删除和增加本质就是数组元素拷贝       ......