欢迎来到天天文库
浏览记录
ID:34724579
大小:209.68 KB
页数:22页
时间:2019-03-10
《mysql5.5新特性要点介绍》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、MySQL5.5新特性要点介绍Renhao2011/11/1MySQL进入Oracle产品体系,获得了更多研发投入,较之之前的5.1版本,将获得诸多特性方面的提升,本文档就几个主要的改进总结如下:1.执行SQL语句支持自定义异常处理并可将异常抛给调用程序针对SIGNAL/RESIGNAL的新SQL语法。SIGNALcondition_value[SETsignal_information[,signal_information]...]condition_value:SQLSTATE[VALUE]sqlstate_value
2、conditi
3、on_namesignal_information:condition_information_item=simple_value_specificationcondition_information_item:{CLASS_ORIGIN
4、SUBCLASS_ORIGIN
5、CONSTRAINT_CATALOG
6、CONSTRAINT_SCHEMA
7、CONSTRAINT_NAME
8、CATALOG_NAME
9、SCHEMA_NAME
10、TABLE_NAME22/22
11、COLUMN_NAME
12、CURSOR_NAME
13、MESSAGE_TEXT
14、MYSQL_
15、ERRNO}CREATEPROCEDUREp1(pvalINT)BEGINDECLAREspecialtyCONDITIONFORSQLSTATE'45000';IFpval=0THENSIGNALSQLSTATE'01000';ELSEIFpval=1THENSIGNALSQLSTATE'45000'SETMESSAGE_TEXT='Anerroroccurred';ELSEIFpval=2THENSIGNALspecialtySETMESSAGE_TEXT='Anerroroccurred';ELSESIGNALSQLSTATE'010
16、00'SETMESSAGE_TEXT='Awarningoccurred',MYSQL_ERRNO=1000;SIGNALSQLSTATE'45000'SETMESSAGE_TEXT='Anerroroccurred',MYSQL_ERRNO=1001;ENDIF;END;在p1例子中,如果pval为0,p()会发出一个警告信息,因为SQLSTATE值以'01'开头,而该值正好处于警告级别,警告信息不并不会终止存储过程,但在存储过程返回后,主机应用程序可使用SHOWWARNINGS查看该信息。如果pval的值为1,p()会发出一个错误信号,
17、并设置MESSAGE_TEXT条件信息项。错误信息会终止存储过程,并返回带有错误信息的文本。如果pval的值为2,尽管SQLSTATE的值已经使用本例中命名的条件进行了指定,但同样还会发送错误信号。如果pval22/22为其它值,p()会先发送一个警告信号,并设置消息文本以及错误编号条件信息项。该警告信息不会终止存储过程,所以存储过程会继续执行;然后p()发送一个错误信号,错误信号会终止存储过程。由警告信息设置的消息文本和错误编号被错误信号设置的值替换,并返回错误信息。·Class='00'(success)Illegal.Thiscann
18、othappenbecauseSQLSTATEvaluesthatbeginwith'00'indicatesuccessandarenotvalidforSIGNAL.·Class='01'(warning)Thevalueofthewarning_countsystemvariablegoesup.SHOWWARNINGSshowsthesignal.SQLWARNINGhandlerscatchthesignal.Ifthesignalisunhandledinafunction,statementsdonotend.·Class='
19、02'(notfound)NOTFOUNDhandlerscatchthesignal.Thereisnoeffectoncursors.Ifthesignalisunhandledinafunction,statementsend.·Class>'02'(exception)SQLEXCEPTIONhandlerscatchthesignal.Ifthesignalisunhandledinafunction,statementsend.·Class='40'Treatedasanordinaryexception.CREATEPROCE
20、DUREp2(divisorINT)BEGINDECLAREdivide_by_zeroCONDITIONFORSQLSTATE'22012';IFdivisor=0THEN22
此文档下载收益归作者所有