MySQL中創(chuàng)建存儲過程出現(xiàn)報(bào)錯(cuò)如何解決

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)MySQL中創(chuàng)建存儲過程出現(xiàn)報(bào)錯(cuò)如何解決,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供綿陽電信機(jī)房 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。

mysql> delimiter $$
mysql> CREATE FUNCTION check_rollbackPatch(THE_REFERNCE_LABEL VARCHAR(75), THE_COLUMN_NAME VARCHAR(75), THE_INSTALL_VERSION VARCHAR(75), THE_VERSION_LEVEL_TABLE_NAME VARCHAR(75))
    ->     RETURNS INTEGER DETERMINISTIC
    ->     BEGIN
    ->         DECLARE INSTALL_VERSION VARCHAR(80) DEFAULT NULL;
    ->         DECLARE REFERENCE_LABEL VARCHAR(80) DEFAULT NULL;
    ->         DECLARE THE_QUERY VARCHAR(500) DEFAULT NULL;
    ->         DECLARE too_many_rows CONDITION FOR 1172;
    ->         DECLARE CONTINUE HANDLER FOR too_many_rows
    ->         BEGIN
    ->         SELECT concat('[INFO]    Several ', THE_REFERNCE_LABEL, ' references found.');
    ->         RETURN 0;
    ->         END;
    ->         DECLARE CONTINUE HANDLER FOR NOT FOUND
    ->         BEGIN
    ->         /*SELECT concat('[INFO]    ', THE_REFERNCE_LABEL, ' reference not found.');*/
    ->         RETURN 1;
    ->         END;        
    ->         SELECT concat('', THE_COLUMN_NAME, ', C_INSTALL_VERSION') INTO @V_PART1;
    ->         SELECT concat(THE_COLUMN_NAME, '=''', THE_REFERNCE_LABEL, ''' and C_INSTALL_VERSION=''', THE_INSTALL_VERSION, '''') INTO @V_PART2;
    ->         SELECT format_selectQuery(THE_VERSION_LEVEL_TABLE_NAME, @V_PART1, @V_PART2) INTO THE_QUERY;
    ->         /*SELECT concat('[INFO]    The query to execute is [', THE_QUERY, ']');*/
    ->         /*EXECUTE IMMEDIATE THE_QUERY into REFERENCE_LABEL, INSTALL_VERSION;*/
    ->         /*SELECT concat('[INFO]    ', THE_REFERNCE_LABEL, ' reference found');*/
    ->         RETURN 0;
    ->     END $$
ERROR 1415 (0A000): Not allowed to return a result set from a function
mysql> delimiter ;

報(bào)錯(cuò)原因:
在MySQL的function里,不能使用SELECT語句來返回結(jié)果集,會報(bào)錯(cuò)。

注釋掉后,報(bào)錯(cuò)消失
mysql> delimiter $$
mysql> CREATE FUNCTION check_rollbackPatch(THE_REFERNCE_LABEL VARCHAR(75), THE_COLUMN_NAME VARCHAR(75), THE_INSTALL_VERSION VARCHAR(75), THE_VERSION_LEVEL_TABLE_NAME VARCHAR(75))
    ->     RETURNS INTEGER DETERMINISTIC
    ->     BEGIN
    ->         DECLARE INSTALL_VERSION VARCHAR(80) DEFAULT NULL;
    ->         DECLARE REFERENCE_LABEL VARCHAR(80) DEFAULT NULL;
    ->         DECLARE THE_QUERY VARCHAR(500) DEFAULT NULL;
    ->         DECLARE too_many_rows CONDITION FOR 1172;
    ->         DECLARE CONTINUE HANDLER FOR too_many_rows
    ->         BEGIN
    ->         /*SELECT concat('[INFO]    Several ', THE_REFERNCE_LABEL, ' references found.');*/
    ->         RETURN 0;
    ->         END;
    ->         DECLARE CONTINUE HANDLER FOR NOT FOUND
    ->         BEGIN
    ->         /*SELECT concat('[INFO]    ', THE_REFERNCE_LABEL, ' reference not found.');*/
    ->         RETURN 1;
    ->         END;        
    ->         SELECT concat('', THE_COLUMN_NAME, ', C_INSTALL_VERSION') INTO @V_PART1;
    ->         SELECT concat(THE_COLUMN_NAME, '=''', THE_REFERNCE_LABEL, ''' and C_INSTALL_VERSION=''', THE_INSTALL_VERSION, '''') INTO @V_PART2;
    ->         SELECT format_selectQuery(THE_VERSION_LEVEL_TABLE_NAME, @V_PART1, @V_PART2) INTO THE_QUERY;
    ->         /*SELECT concat('[INFO]    The query to execute is [', THE_QUERY, ']');*/
    ->         /*EXECUTE IMMEDIATE THE_QUERY into REFERENCE_LABEL, INSTALL_VERSION;*/
    ->         /*SELECT concat('[INFO]    ', THE_REFERNCE_LABEL, ' reference found');*/
    ->         RETURN 0;
    ->     END $$
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;

上述就是小編為大家分享的MySQL中創(chuàng)建存儲過程出現(xiàn)報(bào)錯(cuò)如何解決了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:MySQL中創(chuàng)建存儲過程出現(xiàn)報(bào)錯(cuò)如何解決
標(biāo)題鏈接:http://muchs.cn/article12/jpecdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司自適應(yīng)網(wǎng)站、做網(wǎng)站、定制開發(fā)

廣告

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

外貿(mào)網(wǎng)站建設(shè)