数据库插入触发器 sql->oracle
来源:互联网 发布:java spring框架 编辑:程序博客网 时间:2024/04/27 22:51
sql 脚本
alter trigger tri
on HR_PunchRecordinstead of insert
as
declare @FRegNo varchar(20)
declare @FEmpCode varchar(20)
declare @FPunchID varchar(20)
declare @FVerifyMode varchar(20)
declare @FDate varchar(20)
declare @FTime varchar(20)
declare @FPhoto varchar(20)
select @FRegNo=FRegNo,@FEmpCode=FEmpCode ,@FPunchID=FPunchID ,@FVerifyMode=FVerifyMode ,@FDate=FDate ,@FTime=FTime ,@FPhoto=FPhoto from inserted
if exists (select 1 from HR_PunchRecord where FRegNo=@FRegNo and FPunchID=@FPunchID and FDate=@FDate and FTime=@FTime)
begin
--print'存在'
rollback transaction
end
else
begin
insert into HR_PunchRecord ( HR_PunchRecord.FRegNo,HR_PunchRecord.FEmpCode,HR_PunchRecord.FPunchID,
HR_PunchRecord.FVerifyMode,HR_PunchRecord.FDate, HR_PunchRecord.FTime,
HR_PunchRecord.FPhoto, HR_PunchRecord.FIsNew)
values
(@FRegNo,@FEmpCode,@FPunchID,@FVerifyMode,@FDate,@FTime,@FPhoto,1)
end
oracle
CREATE OR REPLACE TRIGGER TriggerInsertOrUpdate2
BEFORE INSERT ON HR_PUNCHRECORD
FOR EACH ROW
DECLARE
vCount NUMBER(1);
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
SELECT COUNT(1) INTO vCount FROM HR_PUNCHRECORD WHERE FREGNO = :NEW.FREGNO and FPUNCHID = :NEW.FPUNCHID and FDATE = :NEW.FDATE and FTIME = :NEW.FTIME;
--DBMS_OUTPUT.PUT_LINE(vCount);
IF vCount = 1 THEN
DELETE FROM HR_PUNCHRECORD WHERE FREGNO = :New.FREGNO and FPUNCHID = :NEW.FPUNCHID and FDATE = :NEW.FDATE and FTIME = :NEW.FTIME;
END IF;
commit;
END TriggerInsertOrUpdate2;
参考 :http://blog.sina.com.cn/s/blog_7cc3b8db010113oj.html
0 0
- 数据库插入触发器 sql->oracle
- ORACLE数据库中为每个数据表建立序列字段插入值的触发器的SQL脚本
- Oracle数据库sql插入随机数
- oracle数据库PL/SQL之触发器
- Oracle数据库之PL/SQL触发器
- SQL删除、插入触发器
- Oracle数据库编程:使用PL/SQL编写触发器
- 数据库 day62 Oracle(pl/sql,存储过程,触发器)
- 触发器 ORACLE PL/SQL
- ORACLE PL/SQL触发器
- ORACLE PL/SQL:触发器
- ORACLE PL/SQL 触发器
- ORACLE数据库触发器
- Oracle数据库触发器(Triggers)
- oracle数据库触发器例子
- Oracle 数据库事件触发器
- 数据库触发器(oracle)
- 数据库触发器----ORACLE
- RAC+ASM下spfile的迁移—--范例篇
- Ubuntu 14.04 快捷键配置
- ViSimulator for Notepad++
- 坑爹的 open SSh for window,必须吐槽下
- api调用git下载
- 数据库插入触发器 sql->oracle
- Oracle RAC root.sh 报错 Timed out waiting for the CRS stack to start 解决方法—--范例篇
- Android6.0动态权限
- 也谈大型电子商务网站的架构
- rand srand iOS 随机数
- 通过在Android实际开发初探模板模式(一)
- CUDA计时差别
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之u-boot移植
- Android中preference的使用(二)