Oracle(11g)数据库教程之十五:Oracle触发器实例
Oracle(11g)数据库教程之十五:Oracle触发器实例
准备工作:
先启动Oracle,连接数据库
建立两个表:Goods(商品表)、Orders(订单表)
Goods(商品表)
create table Goods
(gid char(8) not null primary key, --商品编号name varchar(10), --商品名price decimal(8,2), --价格num int --数量
);
Orders(订单表)
create table Orders
(gid char(10) not null, --商品号name varchar(10), --商品名price decimal(8,2), --价格onum int , --订单数量otime date --订单时间
);
在商品表中导入商品
insert into Goods values('A0001', '橡皮', 2.5, 100);
insert into Goods values('B0001','小楷本', 2.8, 210);
insert into Goods values('C0001','铅笔', 1.2, 120);
insert into Goods values('D0001','计算器', 28, 20);
任务一、建立触发器,订单表中增加订单数量后,商品表商品数量同步减少对应的商品订单出数量
create trigger tri_insert_orders after insert on orders for each rowdeclarepragma autonomous_transaction;
beginupdate goods set num = num-:new.onum where gid = :new.gid;commit;
end;
验证:
在订单表插入订单,查看商品表相对应商品的数量(原来数量为100)
任务二、建立触发器,实现功能:客户取消订单,恢复商品表对应商品的数量
create trigger tri_cancle_orders after delete on orders for each rowdeclarepragma autonomous_transaction;
beginupdate goods set num= num+:old.onum where gid = :old.gid;commit;
end;
验证:在订单表中删除订单,查看商品表中商品数量
任务三、建立触发器,实现功能:客户修改订单,商品表对应商品数量同步更新
create trigger tri_update_orders after update on orders for each rowdeclarepragma autonomous_transaction;
beginupdate goods set num= num+(:old.onum-:new.onum) where gid = :old.gid;commit;
end;
验证:
开始,‘A0001’订单数为51,后改为72,查看商品表对应商品数量
任务四、建立触发器,实现功能:对于所下订单,进行判断,如果订单的数量>库存数量,就认为是恶意订单,给出警示语句。
验证:计算器库存为20,商品号:D0001
Oracle(11g)数据库教程之十五:Oracle触发器实例相关推荐
- MySQL数据库教程之十五:MySQL触发器实例
MySQL数据库教程之十五:MySQL触发器实例 准备工作: 先启动Navicat for MySQL,建立数据库 建立两个表:Goods(商品表).Orders(订单表) Goods(商品表) cr ...
- 安装Oracle 11g数据库服务器类
<Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南>第3章Oracle 11g数据库的安装,本章将介绍如何在32位系统结构的Windows 7操作系统平台上对Oracle ...
- oracle数据库的详细安装,Oracle 11g数据库详细安装图文教程
本教程为大家分享了Oracle 11g数据库详细安装步骤,供大家参考,具体内容如下 1.先到Oracle官网上下载11g oracle Database 11g第 2 版 (11.2.0.1.0)标准 ...
- Oracle(11g)数据库教程之十:Oracle操作题 (复习课)
Oracle(11g)数据库教程之十:Oracle操作题 (复习课) 操作题 Sutdent表的定义 字段名 字段描述 数据类型 主键 非空 Id 学号 INT(10) 是 是 Name 姓名 VAR ...
- Oracle 11g 数据库基础教程
Oracle 11g 数据库基础教程 课堂笔记 系统服务 操作系统通过服务来管理安装好的Oracle 11g数据库产品的运行 在运行Oracle数据库前,要检查数据库服务有没有启动好 开始»控制面板» ...
- Oracle数据库:oracle 11g安装教程,已安装好的oracle各个文件夹的作用,oracle用户权限怎么样
Oracle数据库:oracle 11g安装教程,已安装好的oracle各个文件夹的作用,oracle用户权限怎么样 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学 ...
- Oracle 11g数据库下载安装教程
Oracle 11g数据库下载安装教程 前言 一.下载 二.安装 1.将下载的两个压缩包,解压至同一文件夹下(可以右键直接解压到当前文件夹),如下 2.进入到database文件夹,双击执行setup ...
- ubuntu14.04、CentOS安装oracle 11g数据库【转载】
出处:https://blog.csdn.net/cainanxing/article/details/78988671 ubuntu14.04.CentOS安装oracle 11g数据库 折腾了好久 ...
- oracle11系统安装,Windows系统下安装Oracle 11g R2教程,oracle11g
Windows系统下安装Oracle 11g R2教程,oracle11g Windows系统下安装Oracle 11g R2教程 Oracle 11g 共有两个大的版本,一个R1(Release 1 ...
最新文章
- 博弈论速成指南:那些融入深度学习的经典想法和新思路
- elasticsearch原理_ElasticSearch读写底层原理及性能调优
- 中双目运算符_C++日志(四十)教你如何以非成员函数的形式重载运算符
- C++代码在Sublime Text 3中编译和运行
- 机器学习中向量化编程总结记录
- python操作系统课程设计_操作系统课程设计.pdf
- Linux基础:linux网络接口
- linux的增删改查、压缩与解压缩
- 关于路由器认证校园网的可行方案.md
- 【批量查询IP归属】
- Python之动态检测编码chardet
- Bitmap、BitSet、RoaringBitmap持久化存储
- 隐马尔科夫模型(HMM)学习笔记二
- Web前端零基础入门HTML5+CSS3学习笔记补充
- 华为往事(九)--邳州开局
- java旅游管理面试,旅游管理专业面试问题
- 详解python使用金山词霸的翻译功能(调试工具断点的使用)
- 问题定义工具和三种问题定义思维模式
- 线程定义, 实现方式及代码实现.
- python图像处理:全景图片转鱼眼图片(鱼眼矫正)
热门文章
- 你凭什么做好互联网?
- OI退役记,第九部分,过去和现在
- 计算机组成原理 - I/O(输入输出)系统
- Polysemy Deciphering Network for Human-Object Interaction Detection论文阅读笔记
- 洛谷循环结构(Freshman锻炼牛犇勿喷)
- 国产250A霍尔电流传感器产品CH704,可以替换Allegro的ACS758/ACS770/ACS772
- n个互异字符串的全排列
- 使用qt操作sqlite,报错attempt to write a readonly database
- [译] 如何创建一个设计体系来赋能团队 —— 关注人,而非像素
- Android启用摄像头失败或者黑屏问题的几点原因