校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > mysql存儲過程之引發(fā)存儲過程中的錯誤條件(SIGNAL和RESIGNAL語句)實例分析

mysql存儲過程之引發(fā)存儲過程中的錯誤條件(SIGNAL和RESIGNAL語句)實例分析

熱門標簽:巫師三血與酒地圖標注 萊西市地圖標注 常州網(wǎng)絡外呼系統(tǒng)開發(fā) 走過哪個省地圖標注 安徽ai電話電銷機器人有效果嗎 外呼系統(tǒng)電銷受騙 銷售語音電話機器人 400電話申請信用卡 在哪里申請400電話

本文實例講述了mysql引發(fā)存儲過程中的錯誤條件(SIGNAL和RESIGNAL語句)。分享給大家供大家參考,具體如下:

在mysql中,我們可以使用SIGNAL和RESIGNAL語句來引發(fā)存儲過程中的錯誤條件。

先來看,SIGNAL語句。我們通常使用SIGNAL語句在存儲的程序(例如存儲過程,存儲函數(shù),觸發(fā)器或事件)中向調用者返回錯誤或警告條件。 SIGNAL語句提供了對返回值(如值和消息SQLSTATE)的信息的控制。來看下它的語法結構:

SIGNAL SQLSTATE | condition_name;
SET condition_information_item_name_1 = value_1,
  condition_information_item_name_1 = value_2, etc;

SIGNAL關鍵字是由DECLARE CONDITION語句聲明的SQLSTATE值或條件名稱。不過要注意的是,SIGNAL語句必須始終指定使用SQLSTATE值定義的SQLSTATE值或命名條件。完事我們如果要向調用者提供信息,就得使用SET子句,如果要使用值返回多個條件信息項名稱,則需要用逗號分隔每個名稱/值對。上述sql中,condition_information_item_name可以是MESSAGE_TEXT,MYSQL_ERRORNO,CURSOR_NAME等。咱們來看一個將訂單行項目添加到現(xiàn)有銷售訂單中的存儲過程,如果訂單號碼不存在,它會發(fā)出錯誤消息:

DELIMITER $$
CREATE PROCEDURE AddOrderItem(in orderNo int,
 in productCode varchar(45),
 in qty int,in price double, in lineNo int )
BEGIN
 DECLARE C INT;
 SELECT COUNT(orderNumber) INTO C
 FROM orders 
 WHERE orderNumber = orderNo;
 -- check if orderNumber exists
 IF(C != 1) THEN 
 SIGNAL SQLSTATE '45000'
 SET MESSAGE_TEXT = 'Order No not found in orders table';
 END IF;
 -- more code below
 -- ...
END $$
DELIMITER ;

一開始,它使用傳遞給存儲過程的輸入訂單號對訂單進行計數(shù),完事如果訂單數(shù)不是1,它會引發(fā)SQLSTATE 45000的錯誤以及orders表中不存在訂單號的錯誤消息。其中45000是一個通用SQLSTATE值,用于說明未處理的用戶定義異常。

我們來調用存儲過程AddOrderItem(),但是傳遞不存在的訂單號,那么將收到一條錯誤消息:

CALL AddOrderItem(10,'S10_1678',1,95.7,1);

執(zhí)行上面代碼,得到以下結果:

mysql> CALL AddOrderItem(10,'S10_1678',1,95.7,1);
1644 - Order No not found in orders table
mysql>

咱們再來看RESIGNAL語句。它在功能和語法方面與SIGNAL語句相似,只是有以下區(qū)別:

  • 必須在錯誤或警告處理程序中使用RESIGNAL語句,否則您將收到一條錯誤消息,指出“RESIGNAL when handler is not active”。 請注意,您可以在存儲過程中的任何位置使用SIGNAL語句。
  • 可以省略RESIGNAL語句的所有屬性,甚至可以省略SQLSTATE值。

如果單獨使用RESIGNAL語句,則所有屬性與傳遞給條件處理程序的屬性相同。咱們來看一個在將發(fā)送給調用者之前更改錯誤消息的存儲過程:

DELIMITER $$
CREATE PROCEDURE Divide(IN numerator INT, IN denominator INT, OUT result double)
BEGIN
 DECLARE division_by_zero CONDITION FOR SQLSTATE '22012';
 DECLARE CONTINUE HANDLER FOR division_by_zero 
 RESIGNAL SET MESSAGE_TEXT = 'Division by zero / Denominator cannot be zero';
 -- 
 IF denominator = 0 THEN
 SIGNAL division_by_zero;
 ELSE
 SET result := numerator / denominator;
 END IF;
END $$
DELIMITER ;

然后,我們來嘗試調用:

mysql> CALL Divide(10,0,@result);
1644 - Division by zero / Denominator cannot be zero

好啦,本次記錄就到這里了,不知道大家有沒有什么收獲。

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL存儲過程技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》及《MySQL數(shù)據(jù)庫鎖相關技巧匯總》

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

您可能感興趣的文章:
  • MySQL中的if和case語句使用總結
  • mysql存儲過程之游標(DECLARE)原理與用法詳解
  • mysql存儲過程之返回多個值的方法示例
  • mysql存儲過程之創(chuàng)建(CREATE PROCEDURE)和調用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法
  • mysql存儲過程之錯誤處理實例詳解
  • mysql存儲過程原理與使用方法詳解
  • mysql 存儲過程中變量的定義與賦值操作
  • mysql存儲過程 游標 循環(huán)使用介紹
  • MySQL存儲過程例子(包含事務,輸出參數(shù),嵌套調用)
  • MySql存儲過程與函數(shù)詳解
  • mysql存儲過程之if語句用法實例詳解

標簽:來賓 煙臺 陽江 赤峰 河北 果洛 鞍山 黃石

巨人網(wǎng)絡通訊聲明:本文標題《mysql存儲過程之引發(fā)存儲過程中的錯誤條件(SIGNAL和RESIGNAL語句)實例分析》,本文關鍵詞  mysql,存儲,過程,之,引發(fā),;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql存儲過程之引發(fā)存儲過程中的錯誤條件(SIGNAL和RESIGNAL語句)實例分析》相關的同類信息!
  • 本頁收集關于mysql存儲過程之引發(fā)存儲過程中的錯誤條件(SIGNAL和RESIGNAL語句)實例分析的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美精品一区男女天堂| 色噜噜狠狠成人网p站| 日韩欧美国产系列| bt7086福利一区国产| 国内精品自线一区二区三区视频| 亚洲国产综合在线| 国产精品人人做人人爽人人添| 日韩欧美在线1卡| 欧美一区二区三区四区五区| 欧美性生活久久| 在线免费观看日本一区| 成人av在线影院| 国产99一区视频免费| 丰满亚洲少妇av| 99视频超级精品| 91一区在线观看| 91国偷自产一区二区三区观看| bt欧美亚洲午夜电影天堂| 91网站视频在线观看| 在线观看日韩电影| 在线观看www91| 777xxx欧美| 精品国产露脸精彩对白| 久久精品一区二区三区四区| 久久精品综合网| 一区精品在线播放| 亚洲一区二区偷拍精品| 午夜影院久久久| 蜜桃视频一区二区三区在线观看 | 欧美一二三四区在线| 日韩美女视频一区二区在线观看| 精品不卡在线视频| 国产精品美女久久久久高潮| 夜夜精品视频一区二区| 免费在线看一区| 丁香啪啪综合成人亚洲小说| 色老头久久综合| 久久久久国产精品厨房| 亚洲精品久久久蜜桃| 久久精品国产精品亚洲精品 | 7777精品伊人久久久大香线蕉最新版 | 色丁香久综合在线久综合在线观看| 欧美猛男超大videosgay| 久久综合成人精品亚洲另类欧美| 综合色天天鬼久久鬼色| 日韩精品一二三| 东方aⅴ免费观看久久av| 日韩女优毛片在线| 国产精品不卡一区| 久久精品久久精品| 91小视频免费看| 欧美成人一区二区三区在线观看| 精品国产不卡一区二区三区| 中文字幕中文字幕在线一区 | 国产精品嫩草久久久久| 日韩综合在线视频| 成人免费看视频| 日韩欧美黄色影院| 亚洲老妇xxxxxx| 成人app在线观看| 精品电影一区二区| 视频一区二区欧美| 日本电影亚洲天堂一区| 中文字幕第一区综合| 久久福利资源站| 欧美日本一区二区在线观看| 亚洲黄色片在线观看| kk眼镜猥琐国模调教系列一区二区| 日韩精品自拍偷拍| 欧美96一区二区免费视频| 欧美系列亚洲系列| 亚洲乱码日产精品bd| 成人性生交大片免费看视频在线| 欧美成人官网二区| 免播放器亚洲一区| 欧美人伦禁忌dvd放荡欲情| 亚洲精品成人天堂一二三| 白白色亚洲国产精品| 亚洲国产高清aⅴ视频| 国产成人午夜精品影院观看视频| 精品国产伦一区二区三区观看体验| 视频一区二区中文字幕| 日韩一区二区麻豆国产| 日韩福利电影在线| 在线播放中文一区| 人禽交欧美网站| 精品久久国产97色综合| 狠狠色综合日日| 国产欧美一区二区精品仙草咪 | 亚洲日本免费电影| 不卡av在线网| 国产精品福利一区| 99精品久久99久久久久| 国产乱妇无码大片在线观看| 欧美变态tickling挠脚心| 蜜臀99久久精品久久久久久软件| 精品久久久久久最新网址| 美女视频免费一区| 久久久久久久久蜜桃| 国产一区二区看久久| 午夜精品影院在线观看| 成人午夜在线免费| 日本va欧美va瓶| 国产精品久久久久一区| 日韩国产在线观看一区| 麻豆91在线播放免费| jlzzjlzz亚洲女人18| 欧美日韩午夜精品| 国产欧美日韩综合精品一区二区| 国产欧美日韩激情| 香蕉加勒比综合久久| 成人免费黄色在线| 91精品一区二区三区在线观看| 中文久久乱码一区二区| 理论片日本一区| 欧美蜜桃一区二区三区| 《视频一区视频二区| 久久99久久99| 91女厕偷拍女厕偷拍高清| 99久久精品免费观看| 粉嫩av一区二区三区在线播放| 狠狠狠色丁香婷婷综合久久五月| 色综合久久久久综合99| 亚洲国产精品ⅴa在线观看| 婷婷一区二区三区| 色视频成人在线观看免| 18成人在线观看| 91在线观看污| 中文字幕电影一区| 国产激情一区二区三区| 久久婷婷久久一区二区三区| 精品一区二区日韩| 日韩视频免费观看高清完整版在线观看| 亚洲综合网站在线观看| 99国产精品久久久久久久久久久 | av综合在线播放| 欧美电视剧在线看免费| 天堂久久一区二区三区| 欧美视频精品在线| 一区二区三区精密机械公司| 国产mv日韩mv欧美| 国产精品视频观看| 国产成人在线观看免费网站| 日韩欧美黄色影院| 免费成人深夜小野草| 精品美女一区二区| 日本aⅴ精品一区二区三区| 在线综合视频播放| 久久99久久精品| 欧美精品一区二| av男人天堂一区| 一区免费观看视频| 9人人澡人人爽人人精品| 日韩理论电影院| 777xxx欧美| 懂色av中文字幕一区二区三区| 国产欧美一区在线| 99综合影院在线| 日韩国产欧美视频| 久久精品一级爱片| 色综合久久88色综合天天| 肉色丝袜一区二区| 欧美刺激午夜性久久久久久久| 国产精选一区二区三区| 中文字幕av一区二区三区高| 在线视频综合导航| 日本不卡1234视频| 国产精品家庭影院| 91精品婷婷国产综合久久竹菊| 国产精品亚洲午夜一区二区三区 | 天天综合天天做天天综合| 337p日本欧洲亚洲大胆色噜噜| 色素色在线综合| 韩国欧美国产一区| 亚洲高清免费视频| 国产视频一区二区三区在线观看| 欧美优质美女网站| 大白屁股一区二区视频| 午夜欧美在线一二页| 亚洲天堂2014| 国产清纯白嫩初高生在线观看91 | 91在线视频在线| 久久精品国产77777蜜臀| 亚洲国产一区二区三区青草影视| 国产欧美日韩另类一区| 日韩欧美成人午夜| 欧美欧美欧美欧美| 在线亚洲欧美专区二区| 国产99一区视频免费| 美美哒免费高清在线观看视频一区二区 | 91在线观看视频| 国产大陆精品国产| 久久99久久99精品免视看婷婷| 日韩在线一区二区三区| 亚洲国产日韩综合久久精品| 亚洲婷婷综合久久一本伊一区| 欧美激情中文不卡| 欧美国产在线观看| 久久婷婷成人综合色| 欧美日韩综合不卡|