问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

db2触发器中,如何写满足条件弹出提示框或者抛出错误?

发布网友 发布时间:2022-04-26 14:15

我来回答

1个回答

热心网友 时间:2022-04-07 22:41

SIGNAL SQLSTATE '75002'   ('ID不能为空') ;



测试成功的执行代码如下:

db2 => CREATE TRIGGER AfterInsertDetail \
db2 (cont.) => AFTER INSERT ON OrderDetail \
db2 (cont.) => REFERENCING NEW AS N \
db2 (cont.) => FOR EACH ROW MODE DB2SQL \
db2 (cont.) => BEGIN ATOMIC \
db2 (cont.) =>   DECLARE v_nowCount INT; \
db2 (cont.) =>   SET v_nowCount = \
db2 (cont.) =>     (SELECT Amount FROM Goods \
db2 (cont.) =>      WHERE ID = N.GoodsID ); \
db2 (cont.) =>   IF v_nowCount - N.Amount <  0 THEN \
db2 (cont.) =>     SIGNAL SQLSTATE '75002' ('库存不足!') ; \
db2 (cont.) =>   ELSE \
db2 (cont.) =>     UPDATE \
db2 (cont.) =>       Goods \
db2 (cont.) =>     SET \
db2 (cont.) =>       Amount = Amount - N.Amount \
db2 (cont.) =>     WHERE \
db2 (cont.) =>       ID = N.GoodsID; \
db2 (cont.) =>   END IF; \
db2 (cont.) => END
DB20000I  SQL 命令成功完成。

db2 => INSERT INTO OrderDetail VALUES(1, 1, 90)
DB20000I  SQL 命令成功完成。

db2 => INSERT INTO OrderDetail VALUES(1, 1, 20)
DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0438N  应用程序发生错误或警告,其诊断文本为:"库存不足!"。  SQLSTATE=75002

db2 => select * from goods

ID          AMOUNT
----------- -----------
          1          10

  1 条记录已选择。

db2 => select * from OrderDetail

ID          GOODSID     AMOUNT
----------- ----------- -----------
          1           1          90

  1 条记录已选择。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 db2数据库中,查询数据时判断查询字段是否为空或空字符串,如果是就查 db2 10 往一个测试表里插入空字符串&#39;&#39;,但是查询出来后,该字段为null 奥特曼X的演职员表 艾克斯奥特曼的人间体大空大地真名叫什么? 请问这个奥特曼是谁?他的电视剧或者电影版有哪些,叫什么名字?麻烦说下,谢谢了! 奥特曼X的主要角色(Xio成员) 奥特曼人物大全? 艾克斯·奥特曼的剧情简介 艾克斯·奥特曼的演职员表 艾克斯奥特曼的人间体是由哪两位人物合成的 所有奥特曼的召唤人及奥特曼 帮我介绍这个人物 什么蛇的毒性最大 毒性很大的花 世界上最毒的十大排名是哪些峰毒性有多大 世界上毒性最大的动物是什么? 哪些中药毒性最大 世界上 毒性最大的植物 有哪些 ? 什么气体的毒性最大 什么化学物质毒性最大 db2中where条件如果为空查出所有的sql怎么写 小弟接触DB2不久,遇到个DB2函数循环的问题,始终报错,望大神指点迷津_百 ... db2 update 字段只对一行更新但所有行全部更新成null db2 批量更新语句 db2查询的表没有一条记录,怎样默认取0? 关系型数据库管理系统(RDBMS)把 null 在磁盘上成什么? db2 查询 如果某个字段为空 则不显示这行记录 DB2和其他数据库在一些SQL语法上的区别? 查询语句怎么改呢??SQL = SQL & &quot; and (int(WM_DB2) &lt; 151)&quot; 问个DB2小白问题,select中定义的列别名怎么不能在where条件中用 sql 查询时有空值返回0怎么写 如何使用sql语句判断一个数据库是否已经存在 ibm.data.db2的类型初始值设定项引发异常 SQL语句问题。如何select出来一个虚列并且用null填充 如何获取数据库中表名、字段名、字段属性信息? 这个SQL怎么写,关于一行里不同列相加的. oracle的某个字段怎么不能判断=&#39;&#39; and is not null?。 word公式编辑器中微分符号的竖线怎么打? 怎么打出竖杠的字符二? 求电视剧&lt;现代钟无艳&gt;主题曲