Oracle数据库事务与序列实现的自增id
来源:互联网 发布:淘宝开店实名认证在哪 编辑:程序博客网 时间:2024/04/29 06:43
事务与序列实现的自增id
1. 创建序列:
create sequence seq_add
minvalue 8000
2. 创建触发器:
createorreplacetrigger trigger_seq
beforeinserton scott.emp
foreachrow
begin
--使用序列添加id到更新的一行
select seq_add.nextvalinto :new.empnofrom dual;
end;
3. 添加数据:insertinto scott.emp(ename)values('zxxxx')
4. 查询:select * from scott.emp
Ø 事务
² 事务的四大特性
原子性
一致性
隔离性
持久性
特点:要么就是全部执行成功,要么就是全部不执行
保存点
Savapoint 保存点名称
savepointa;
恢复到保存点
Rollback to 保存点名称
事务转账
createorreplaceprocedureproc_sal(pmoneyint)
as
begin
--转出
update scott.empsetsal=sal-pmoneywhere empno=7839;
--转入
update scott.empsetsal=sal+pmoneywhere empno=7788;
--提交(这样直接提交很危险)
commit;
end;
--调用
begin
proc_sal(1000);
end;
异常处理
事务记录测试号
createorreplaceprocedure proc_sal(pmoneyint,pinpnvarchar2,poutpnvarchar2)
as
numerror int:=0;
begin
--转出
updatescott.empset sal=sal-pmoneywhere ename=pinp;
--错误号
numerror:=numerror+sql%rowcount;
--转入
updatescott.empset sal=sal+pmoneywhere ename=poutp;
--错误号
numerror:=numerror+sql%rowcount;
ifnumerror<2then
dbms_output.put_line('转账失败');
--回滚
rollback;
else
--提交(这样直接提交很危险)
commit;
endif;
end;
² 事务异常处理
createorreplaceprocedure proc_sal(pmoneyint,pinpnvarchar2,poutpnvarchar2)
as
numerror int:=0;
begin
--转出
updatescott.empset sal=sal-pmoneywhere ename=pinp;
--错误号
numerror:=numerror+sql%rowcount;
--转入
updatescott.empset sal=sal+pmoneywhere ename=poutp;
--错误号
numerror:=numerror+sql%rowcount;
ifnumerror<2then
dbms_output.put_line('转账失败');
rollback;
else
--提交(这样直接提交很危险)
commit;
endif;
exception--异常处理
whenothersthen
begin
dbms_output.put_line('转账过程中出现异常');
rollback;--回滚
end;
end;
- Oracle数据库事务与序列实现的自增id
- oracle数据库用序列实现ID自增
- oracle数据库创建序列和触发器实现id自增
- oracle中的ID号实现自增长的方法(序列)
- Oracle使用序列和触发器实现自增ID
- oracle建表实现序列ID自增
- Oracle自增ID的实现
- Oracle自增ID的实现
- 关于oracle11g数据库不能创建序列的报错问题----实现表id自增问题
- php与oracle数据库实现由序列获取当前表可insert的id值
- 数据库事务中获取自增ID
- oracle数据库自增序列的创建
- Oracle数据库中,两种方式实现ID自增
- 创建oracle序列-用于id自增
- Oracle自增ID实现
- Oracle自增ID实现
- Oracle自增ID实现
- oracle实现自增id
- [UGUI][Unity插件]载入框插件载入
- 接口 Collection
- 修改 Docker 容器下的镜像软件下载源
- SSH三大框架搭建(非常之基础)
- 在mybatis里面设置不同数据库运行环境和适应性问题
- Oracle数据库事务与序列实现的自增id
- Linux安装VMware Tools虚拟机图文教程
- [Unity插件]背包系统插件
- CTS测试框架 -- 命令解析
- python文件读写
- Linux下打差异包
- mysql 高并发,防止库存刷爆
- 排序算法——冒泡排序
- SSH框架搭建 详细图文教程