免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

mysql怎么拋出異常,mysql存儲過程主動拋出異常

如何對mysql拋出異常(php)

直接使用try...catch....結構。比如:

成都創新互聯的客戶來自各行各業,為了共同目標,我們在工作上密切配合,從創業型小企業到企事業單位,感謝他們對我們的要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。專業領域包括成都網站設計、成都網站制作、電商網站開發、微信營銷、系統平臺開發。

try

{

DB::query("SELECT?count(*)?FROM?pre_111?WHERE?fid?=?$fid";

}

catch(exception?$ex)

{

echo($ex-getMessage());

}

如何Mysql觸發器中拋出一個異常

從Mysql 5.5 開始為我們提供了SIGNAL函數來實現這個功能。

[sql] view plain copy

CREATE TRIGGER `tg_order_create` AFTER INSERT ON `tp_order` FOR EACH ROW BEGIN

DECLARE msg varchar(200);

/*凍結金額*/

IF 2=NEW.condition THEN

UPDATE `tp_user` SET `frozen_amount`=`frozen_amount`+NEW.amount WHERE `id`=NEW.uid AND `amount`-`frozen_amount` NEW.amount;

/*如果余額不足,產生一個錯誤*/

IF ROW_COUNT() 1 THEN

set msg = "用戶余額不足以完成支付.";

SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = msg;

END IF;

/*扣除金額*/

ELSEIF 3=NEW.condition THEN

UPDATE `tp_user` SET `amount`=`amount`-NEW.amount WHERE `id`=NEW.uid AND `amount`-`frozen_amount` NEW.amount;

/*如果余額不足,產生一個錯誤*/

IF ROW_COUNT() 1 THEN

set msg = "用戶余額不足以完成支付.";

SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = msg;

END IF;

END IF;

END;

這里這條觸發器的功能是庫存操作,當庫存足夠的時候 減少庫存,否則 拋出一個異常并報告商品庫存不足:

[sql] view plain copy

CREATE TRIGGER `TG_order_detail_dec_stock` BEFORE INSERT ON `tp_order_detail` FOR EACH ROW BEGIN

DECLARE msg VARCHAR(200);

UPDATE `tp_stock` SET `num`=`num`-NEW.num WHERE `goods_id`=NEW.goods_id AND `mid`=NEW.mid AND `num`=NEW.num;

IF ROW_COUNT() 1 THEN

SELECT CONCAT(`name`, ' 庫存不足.') INTO msg FROM `tp_goods` WHERE `id`=NEW.goods_id;

SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = msg;

END IF;

END;

在PHP端的處理(注:使用ThinkPHP框架):

[php] view plain copy

//前面省略若干行....

try {

if (false === ($order_pk = $tbl_order-add($order))) {

$tbl-rollback();

echo json_encode(array('success' = -1, 'message' = "創建訂單失敗!."), JSON_UNESCAPED_UNICODE);

return;

}

}catch (\PDOException $e){

$errInfo=$e-errorInfo[2];

$tbl-rollback();

echo json_encode(array('success' = -1, 'message' = "創建訂單失敗!,{$errInfo}"), JSON_UNESCAPED_UNICODE);

return;

}

//后面省略若干行....

從Java向MySQL添加數據拋出異常

user表不存在;而且一般情況下user屬于關鍵字,不應該把user當表名直接用

分享名稱:mysql怎么拋出異常,mysql存儲過程主動拋出異常
鏈接URL:http://m.newbst.com/article4/dsseeie.html

成都網站建設公司_創新互聯,為您提供電子商務ChatGPT自適應網站移動網站建設網站設計App設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發