触发器的应用(商店打折)

--用户信息表
create table useres
(
u_id number(13,0) primary key,
username varchar2(50) not null,
password varchar2(20) not null,
name varchar2(50),
sex char(4),
birthday date,
phonenum varchar2(11),
grade int default 0 --积分
);

--会员表
create table vip
(
vid varchar2(20) primary key,
u_id number(13,0),
discount number(3,2), --折扣

constraint fk_vip foreign key(u_id) references useres(u_id)
);

insert into useres values(2016061600001,‘jacky‘,‘123456‘,‘张三‘,‘男‘,‘23-7月-88‘,‘13548643025‘,default);
insert into useres values(2016061600002,‘mary‘,‘mary‘,‘王红‘,‘女‘,‘20-7月-98‘,‘13748643025‘,default);
insert into useres values(2016061600003,‘jason‘,‘123456‘,‘李四‘,‘男‘,‘23-7月-88‘,‘13948743025‘,default);
commit;

--触发器
create or replace trigger trigger_vip
after
update of grade
on useres
for each row
when (new.grade >= 10000)
declare
vcount int;
v_vid varchar2(20) := ‘V‘ || to_char(sysdate,‘yyyyMMdd‘) || ‘00001‘;
v_discount number(3,2);
begin
select count(*) into vcount from vip;
if vcount > 0 then
v_vid := substr(v_vid,0,length(v_vid) - 5) || lpad(to_char((to_number(substr(v_vid,length(v_vid) - 4,5),‘99999‘) + 1)),5,0);
end if;

case
when :new.grade >= 10000 and :new.grade <= 50000 then
v_discount := 0.95;
when :new.grade >= 60000 and :new.grade <= 100000 then
v_discount := 0.90;
when :new.grade >= 100000 then
v_discount := 0.80;
end case;

select count(*) into vcount from vip where u_id = :old.u_id;

if vcount > 0 then
select vid into v_vid from vip where u_id = :old.u_id;
update vip set discount = v_discount where vid = v_vid;
else
insert into vip values(v_vid,:old.u_id,v_discount);
end if;
end;

--测试
update useres set grade = grade + 50000 where u_id = 2016061600001;
commit;

时间: 2024-11-04 14:34:57

触发器的应用(商店打折)的相关文章

决定你是富人还是穷人的11条标准

1.自我认知 穷人:很少想到如何去赚钱和如何才能赚到钱,认为自己一辈子就该这样,不相信会有什么改变. 富人:骨子里就深信自己生下来不是要做穷人,而是要做富人,他有强烈的赚钱意识,这也是他血液里的东西,他会想尽一切办法使自己致富. 2.休闲 穷人:在家看电视,为肥皂剧的剧情感动得痛苦流涕,还要仿照电视里的时尚来武装自己. 富人:在外跑市场,即使打高尔夫球也不忘带者项目合同. 3.交际圈子 穷人:喜欢走穷亲戚,穷人的圈子大多是穷人,也排斥与富人交往,久而久之,心态成了穷人的心态,思维成了穷人的思维,

POJ - 1170 Shopping Offers (五维DP)

题目大意:有一个人要买b件商品,给出每件商品的编号,价格和数量,恰逢商店打折.有s种打折方式.问怎么才干使买的价格达到最低 解题思路:最多仅仅有五种商品.且每件商品最多仅仅有5个,所以能够用5维dp来表示.每一个维度都代表一件商品的数量 打折的方式事实上有b + s种.将每种商品单件卖的也算一种打折方式 这题有个坑点,就是b或者s有可能为0 #include<cstdio> #include<cstring> #include<algorithm> #include&l

十个男人看了,九个成了富人

当你放下面子赚钱的时候,说明你已经懂事了.当你用钱换回面子的时候,说明你已经成功了.当你用面子可以赚钱的时候,说明你已经是人物了.当你还停留在那里闲扯淡.吹牛皮.只爱所谓的面子的时候,说明你这辈子也就这样了--这个很重要,是所有人走向成熟的必经之路!宁愿在富人堆里做穷人,也不在穷人堆里当富人. 穷人与富人的区别: 1.穷的女人:在回家的时候,女人会教孩子见到长辈就要说:"恭喜发财!"潜意识里就是用孩子那张嫩脸换取可怜的压岁钱.长此以往,孩子被灌输的全是乞讨的心态! 2.富的女人:每次回

总结:顶尖销售都是怎样的!

做销售的人我们会分成两种,一种是做得好的,另一种是做不好的.那他们的根本差别在哪里呢?你从他们身上能学到什么呢? 1.自我认知 业绩不好的销售人员:很少想到如何去说服客户和如何才能说服了客户,认为做业务靠的是产品的好坏和客户的选择,认为客户该怎么样就该这样,不相信会有什么改变.总是抱怨和牢骚,寻找理由! 优秀的销售人员:骨子里就深信自己做销售就是给自己做事情,就是自己给自己做老板,世界上没有完美的产品,只有天天销售产品的销售人员.他有强烈的进去意识,喜欢认真的学习和努力的工作,这也是他血液里的东

Python技巧--02(assert断言)

断言是什么 Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常. 运用断言 example1(商店打折): def apply_discount(product, discount): price = int(product['price'] * (1.0 - discount)) assert 0 <= price <= product['price'] print(price) shoes = {'name': 'nike', 'price':

微信小程序商店 | 即速商店_福利类小程序

即速应用商店_分类最齐全的小程序商店,收录当前最新最热门小程序,汇集各行业小程序案例及评测,在这里可以轻松找到各种实用好玩的小程序,也可免费发布 自己的小程序获取 巨大流量 . PS:关于微信小程序商店_即速商店?   如何免费发布微信小程序,获取流量? 微信小程序商店|即速商店_福利小程序 要求:本次安利的可是一堆堆福利小程序,各大电商自有平台优惠券代金券随便领!注意,想在该类目下提交的微信小程序须具备购物.福利相关属性.如小程序内发布虚假违法信息,由小程序主体承担.点击 > 即刻提交 <

微信小程序商店 | 即速商店_商城类小程序

即速应用商店-分类最齐全的小程序商店,收录当前最新最热门小程序,汇集各行业小程序案例及评测,在这里可以轻松找到各种实用好玩的小程序,也可免费发布 自己的小程序获取巨大流量 . PS:关于微信小程序商店_即速商店?   如何免费发布微信小程序,获取流量? 微信小程序商店|即速商店_商城小程序 要求:该类目下提交的微信小程序须具备购物.商城相关属性.如小程序内发布虚假违法信息,由小程序主体承担.点击 > 即刻提交 < 本期商城小程序推荐: ? 女王名品show 测评:女王名品show小程序,免费学

微信小程序商店 | 即速商店_团购类小程序

即速应用商店-分类最齐全的小程序商店,收录当前最新最热门小程序,汇集各行业小程序案例及评测,在这里可以轻松找到各种实用好玩的小程序,也可 免费发布 自己的小程序获取 巨大流量 . PS:关于微信小程序商店_即速商店?   如何免费发布微信小程序,获取流量? 微信小程序商店|即速商店_团购小程序 要求:该类目下提交的微信小程序须具备购物.团购相关属性.如小程序内发布虚假违法信息,由小程序主体承担.点击 > 即刻提交 < 本期团购小程序推荐: ? 网易一起拼lite 测评:网易一起拼小程序只做优质

Oracle数据库——触发器的创建与应用

一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作.(第1题中,user是系统函数,返回当前用户.字符串中使用两个单引号表示一个单引号.) 要求:分别以system用户和scott用户对emp 表执行DML操作,试验触发器的运行效果. (1)在scott用户下创建触发器 语句: create or replace t