使用触发器做简单编程
有两张表(商品表和订单表,结构如下)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE TABLE goods ( gid int (11) DEFAULT NULL , name varchar (20) DEFAULT NULL , num smallint (6) DEFAULT NULL ); CREATE TABLE ord ( oid int (11) DEFAULT NULL , gid int (11) DEFAULT NULL , much smallint (6) DEFAULT NULL ); 插入数据: INSERT INTO goods VALUES ( '1' , 'cat' , '32' ), ( '2' , 'dog' , '65' ), ( '3' , 'pig' , '21' ); |
业务场景如下:
客户如果买的东西超过了库存(goods表的num字段),如何预防,能否在购买量(插入ord表的much字段)>库存量(goods表的num字段)时,把much自动改为num
使用触发器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | create trigger t before insert on ord for each row begin declare rnum int ; select num into rnum from goods where gid = new.gid; if new.much > rnum then set new.much = rnum; end if; update goods set num = num - new.much where gid=new.gid; end |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥