数据库教程:MySQL 错误处理例子[译]分享

fromhttps://www.devshed.com/c/a/MySQL/Error-Handling-Examples/
ErrorHandlerExamples
Herearesomeexamplesofhandlerdeclarations:
Ifanyerrorconditionarises(otherthanaNOTFOUND),continueexecutionaftersettingl_error=1:
DECLARECONTINUEHANDLERFORSQLEXCEPTION
SETl_error=1;
Ifanyerrorconditionarises(otherthanaNOTFOUND),exitthecurrentblockorstoredprogramafterissuingaROLLBACKstatementandissuinganerrormessage:
DECLAREEXITHANDLERFORSQLEXCEPTION
BEGIN
ROLLBACK;
SELECT’Erroroccurred–terminating’;
END;
IfMySQLerror1062(duplicatekeyvalue)isencountered,continueexecutionafterexecutingtheSELECTstatement(whichgeneratesamessageforthecallingprogram):
DECLARECONTINUEHANDERFOR1062
SELECT’Duplicatekeyinindex’;
IfSQLSTATE23000(duplicatekeyvalue)isencountered,continueexecutionafterexecutingtheSELECTstatement(whichgeneratesamessageforthecallingprogram):
DECLARECONTINUEHANDERFORSQLSTATE’23000′
SELECT’Duplicatekeyinindex’;
WhenacursorfetchorSQLretrievesnovalues,continueexecutionaftersettingl_done=1:
DECLARECONTINUEHANDLERFORNOT
FOUND
SETl_done=1;
Sameasthepreviousexample,exceptspecifiedusingaSQLSTATEvariableratherthananamedcondition:
DECLARECONTINUEHANDLERFORSQLSTATE’02000′
SETl_done=1;
Sameastheprevioustwoexamples,exceptspecifiedusingaMySQLerrorcodevariableratherthananamedconditionorSQLSTATEvariable:
DECLARECONTINUEHANDLERFOR1329
SETl_done=1;
错误处理例子
有几种错误处理的声明形式:
§如果任何错误(不是NOTFOUND),设置l_error为1后继续执行:
DECLARECONTINUEHANDLERFORSQLEXCEPTION
SETl_error=1;
§如果发生任何错误(不是NOTFOUND),执行ROLLBACK和产生一条错误消息后退出当前块或存储过程。
DECLAREEXITHANDLERFORSQLEXCEPTION
BEGIN
ROLLBACK;
SELECT’Erroroccurred–terminating’;
END;
§如果MySQL1062错误(重复的健值)发生,执行SELECT语句(向调用程序发一条消息)后继续执行
DECLARECONTINUEHANDERFOR1062
SELECT’Duplicatekeyinindex’;
§如果SQLSTATE2300错误(重复的健值)发生,执行SELECT语句(向调用程序发一条消息)后继续执行
DECLARECONTINUEHANDERFORSQLSTATE’23000′
SELECT’Duplicatekeyinindex’;
§当游标或者SQL选择语句没有返回值时,设置l_done=1后继续执行
DECLARECONTINUEHANDLERFORNOT
FOUND
SETl_done=1;
§此例除了用SQLSTATE变量而不是命名条件以外,跟前一个例子一样
DECLARECONTINUEHANDLERFORSQLSTATE’02000′
SETl_done=1;
§此例除了用MySQL的错误码变量而不是命名条件或者SQLSTATE变量以外,跟前两个例子一样
DECLARECONTINUEHANDLERFOR1329
SETl_done=1;

标签: SQL

mysql 日期和时间格式转换实现语句

3步搞定纯真IP数据导入到MySQL的方法详解

上述就是数据库技术:MySQL 错误处理例子分享的全部内容,如果对大家有所用处且需要了解更多关于mysql数据库学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/910020.html

(0)
上一篇 2021年10月23日
下一篇 2021年10月23日

精彩推荐