Oracle触发器简单应用示例

news2024/12/23 2:25:10

目录

一、应用描述

【1】、应用场景:

【2】、具体场景:

二、表结构介绍

 【1】表名介绍:

【2】表结构:

三、设置触发器


一、应用描述

【1】、应用场景:

现有一张库存明细以及销售明细表,销售明细表发生售卖即新增一条销售数据,同时库存相应减少一件;

【2】、具体场景:

【1】1001号产品售出1件,1001号产品库存减少一件;

【2】1001号产品发生1件退货,即销售-1件,1001号产品库存+1。

二、表结构介绍

 【1】表名介绍:

库存明细表:e_stock_info

销售明细表:e_sales_info

【2】表结构:

库存明细表:e_stock_info
销售明细表:e_sales_info

三、设置触发器

CREATE OR REPLACE TRIGGER sales_trigger
BEFORE INSERT
ON e_sales_info  -- 替换为实际的销售记录表名
FOR EACH ROW
DECLARE
  v_prod_id NUMBER;  -- 替换为实际的产品ID列名
  v_quantity_sold NUMBER;  -- 替换为实际的销售数量列名
  v_current_stock NUMBER;
BEGIN
  -- 获取销售记录中的产品ID和销售数量
  v_prod_id := :NEW.prod_id;  -- 假设产品ID列名为prod_id
  v_quantity_sold := :NEW.quantity_sold;  -- 假设销售数量列名为quantity_sold

  -- 获取当前库存数量
  SELECT stock_quantity INTO v_current_stock
  FROM e_stock_info  -- 替换为实际的产品表名
  WHERE prod_id = v_prod_id;

  -- 检查库存是否足够
  IF v_current_stock >= v_quantity_sold THEN
    -- 更新库存数量
    UPDATE e_stock_info
    SET stock_quantity = v_current_stock - v_quantity_sold
    WHERE prod_id = v_prod_id;
  ELSE
    -- 抛出异常或执行其他操作,表示库存不足
    RAISE_APPLICATION_ERROR(-20001, '库存不足');
    -- 更新库存数量
    UPDATE e_stock_info
    SET stock_quantity = v_current_stock - v_quantity_sold
    WHERE prod_id = v_prod_id;
  END IF;
END;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1407786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python合并多个dict---合并多个字典值---字典值相加

文章目录 序多个dict同key值相加collection.Counter传参重载号 多个dict合并练习 序 主要是借助Counter、函数传参和运算符重载!各有优劣! 多个dict同key值相加 collection.Counter 借助collections.Counter,但是它只适用于值为整数或者小…

扭蛋机小程序开发,让扭蛋迷体验到扭蛋的趣味性

扭蛋机作为盲盒的前身,也是深受大众的欢迎,十几到几十不等的价格就可以让消费者体验到幸福感。扭蛋机具有价格低、性价比高的特点,扭蛋中的主题商品也都是经典热门动漫,具有较高的收藏价值,吸引了不少的扭蛋迷。 随着…

企业新闻稿怎么写?纯干货!

企业新闻稿是企业宣传的重要营销方式,新闻稿件的质量直接决定你的宣传效果,企业新闻稿怎么写,接下来伯乐网络传媒就来给大家分享一些企业新闻稿写作心得,纯干货,建议收藏起来慢慢看! 一、企业新闻稿的组成要…

深入理解stressapptest

文章目录 一、概述二、安装2.1、源码编译安装2.2、命令行安装2.3、安装确认三、重要参数详解3.1、查询支持的参数3.2、参数说明 四、实例4.1、随机测试(默认模式)4.2、循环测试4.2、全内存测试 团队博客: 汽车电子社区 一、概述 stressapptest是一款免费…

Pytorch线性代数

1、加法运算 A torch.arange(20, dtypetorch.float32).reshape(5, 4) B A.clone() # 通过分配新内存,将A的一个副本分配给B A, A B# tensor([[ 0., 1., 2., 3.], # [ 4., 5., 6., 7.], # [ 8., 9., 10., 11.], # [12., 13.,…

【裁员潮】技术变革下的职业危机,程序员会有多大影响,又应该如何面对

大家好,我是全栈小5,欢迎阅读文章! 此篇是【话题达人】序列文章,这一次的话题是《技术变革下的裁员潮》 文章将以博主的角度进行讲述,理解和水平有限,不足之处,望指正。 目录 背景硬实力职业危机…

Python环境的安装和Pycharm的安装

Python环境的安装 英文版官网:Welcome to Python.org, 因为是外网,加载可能会很慢 首先呢,我们先去官网查找:Python中文网 官网,这个官网是中文版的,点进去之后是这个页面 然后点击下载&#…

【nowcoder】链表的回文结构

牛客题目链接 链表的回文结构 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {} };*/ #include <cstdlib> // 建议大伙自己对照我的代码画下图&#xff0c;假设A链表是&#xff1a;1 2 3 2 1 class PalindromeList { publi…

消息队列RabbitMQ.02.交换机的讲解与使用

目录 RabbitMQ中交换机的基本概念与作用解析 交换机的作用&#xff1a; 交换机的类型&#xff1a; 直连交换机&#xff08;Direct Exchange&#xff09;&#xff1a; 将消息路由到与消息中的路由键&#xff08;Routing Key&#xff09;完全匹配的队列。 主题交换机&#x…

【计算机网络】UDP协议与TCP协议

文章目录 一、端口号1.什么是端口号2.端口号范围划分3.认识知名端口号(Well-Know Port Number)4.netstat5.pidof 二、UDP协议1.UDP协议端格式2.UDP的特点3.面向数据报4.UDP的缓冲区5.UDP使用注意事项6.基于UDP的应用层协议 三、TCP协议1.TCP协议段格式1.1理解封装解包和分用1.2…

数据结构(C语言版)代码实现(三)——单链表部分代码实现

目录 格式 头文件 宏定义 线性表的单链表存储结构 按位查找 插入元素 删除元素 头插法建立单链表 合并非递减单链表 其他基本操作 完整版 测试代码&#xff08;主函数&#xff09; 测试结果 格式 参考 2.3节 线性表的链式表示和实现 头文件 宏定义 #pragma onc…

安卓移动设备使用DS file文件管理工具远程访问本地群晖NAS文件

文章目录 1. 群晖安装Cpolar2. 创建TCP公网地址3. 远程访问群晖文件4. 固定TCP公网地址5. 固定TCP地址连接6. 结语 DS file 是一个由群晖公司开发的文件管理应用程序&#xff0c;主要用于浏览、访问和管理存储在群晖NAS&#xff08;网络附加存储&#xff09;中的文件。这个应用…

小模型也能COT

前两章我们分别介绍了COT的多种使用方法以及COT的影响因素。这一章更多面向应用&#xff0c;既现实场景中考虑成本和推理延时&#xff0c;大家还是希望能用6B的模型就不用100B的大模型。但是在思维链基础和进阶玩法中反复提到不论是few-shot还是zero-shot的思维链能力似乎都是1…

‘cnpm‘ 不是内部或外部命令,也不是可运行的程序

一、问题 昨天用npm 安装环境&#xff0c;实在太慢了&#xff0c;就想用cnpm&#xff0c;然后发现提示‘cnpm 不是内部或外部命令,也不是可运行的程序。 看了很多方法&#xff0c;选择了下面这个&#xff0c;运气好到爆棚&#xff0c;就直接可以用了。其他的方法暂未去了解。先…

【极数系列】Flink 初相识(01)

# 【极数系列】Flink 初相识&#xff08;01&#xff09; 引言 Flink官网&#xff1a;https://flink.apache.org/ Flink版本&#xff1a;https://flink.apache.org/blog/ Flink文档&#xff1a;https://ci.apache.org/projects/flink/flink-docs-release-1.12/ Flink代码库…

shell脚本-条件测试、

一.条件测试 1.&#xff08; &#xff09; 和 { } &#xff08;&#xff09;会进/data ,开启子shell { } 直接切过去了&#xff0c;不开子shell 小案例&#xff1a; 2. test 命令 测试特定的表达式是否成立&#xff0c;当条件成立&#xff0c;测试语句的返回值为0&#xff…

[BUG] Authentication Error

前言 给服务器安装了一个todesk&#xff0c;但是远程一直就是&#xff0c;点击用户&#xff0c;进入输入密码界面&#xff0c;还没等输入就自动返回了 解决 服务器是无桌面版本&#xff0c;或者桌面程序死掉了&#xff0c;重新安装就好 sudo apt install xorg sudo apt inst…

PIL笔记:通道+模式+坐标系统+基本图像操作

PIL Python Imaging Library&#xff0c;Python的图像处理核心库 通道bands 灰度图片是单通道组成 彩色图片是三通道RGB组成 真彩色图片是四通道RGBA组成 模式 RGB RGBA … 坐标系统 左上角为原点(0, 0) 图像操作 显示图像 show 创建图像 open()打开图像new()创建I…

嵌入式学习-C++-Day1

嵌入式学习-CDay1 一、思维导图 二、作业 1.提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数&#xff08;要求使用C风格字符串完成&#xff09; #include <iostream> #include <string.h>using namespace…

shopee母婴选品:Shopee平台上进行母婴类目的选品

在Shopee平台上进行母婴类目的选品时&#xff0c;卖家可以通过一些策略来提高产品的市场竞争力和销售业绩。下面将详细介绍这些策略。 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址&#xff08;复制浏览器打开&#xff09;&#xff1a;D。dDqbt。Com/JU5o知虾是Sh…