• ADADADADAD

    Mysql存储过程编写[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:13:09

    作者:文/会员上传

    简介:

    Mysql存储过程编写存储过程编写的模板:Create PROCEDURE PROCEDUREName (IN para mint,……)BeginDeclare varname type;语句;End;以上就是存储过程的编写模板。其中,type可以

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    Mysql存储过程编写
    存储过程编写的模板:
    Create PROCEDURE PROCEDUREName (IN para mint,……)
    Begin
    Declare varname type;
    语句;
    End;
    以上就是存储过程的编写模板。
    其中,type可以是表中的任意类型,比如:varchar,bigint,int,decimal,longtext等等类型。
    游标的声明是:
    Declare cursorName cursor from select语句。
    Declare continue handler for not found set varName = 1;
    varName在使用的时候,需要进行声明,这个是表明如果游标没有数据了,varName赋值为1时表示没有值。
    Open cursorName;表示打开游标。
    CLOSE cursorName;表示关闭游标。
    FETCH cursorName into varlist;表示向游标中取出值。
    If条件语句:
    1、种情况
    If 条件 then
    满足条件时执行的语句
    End if;
    2、种情况
    If 条件 then
    满足条件的执行的语句
    Else
    不满足条件的执行的语句
    End if;
    循环语句:
    Out_loop:LOOP

    END LOOP out_loop;
    这个是LOOP循环,其中out_loop表示的是LOOP的循环标签,类似于汇编的标签。
    其中结束LOOP循环的语句是:
    LEAVE out_loop;out_loop表示LOOPd的标签
    例子:
    create PROCEDURE selectExtratUnit()
    BEGIN
    DECLARE id BIGINT;
    DECLARE na LONGTEXT;
    DECLARE linkName LONGTEXT;
    DECLARE notfound INT;
    DECLARE cursor_avgScore CURSOR for select summary_id,text2 from edoc_summary_extend_send_sj where text2 is not null and text2 <> '';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET notfound = 1;
    OPEN cursor_avgScore;
    out_loop:LOOP
    if notfound = 1 THEN
    LEAVE out_loop;
    end if;
    FETCH cursor_avgScore into id,na;
    select group_concat(org_name) into linkName from trans_org_sj where org_id in (
    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(na,'|',help_topic_id+1),'|',-1) AS num FROM mysql.help_topic WHERE help_topic_id < LENGTH(na)-LENGTH(REPLACE(na,"|",''))+1 );
    INSERT into extrat_table(id,orgname) VALUES(id,linkName);
    END LOOP out_loop;
    CLOSE cursor_avgScore;
    end;

    注意:
    在创建存储过程的时候,选用的用户端的不同,会导致存储过程在语法对的情况下,会有一些错误。最好使用Navicat和mysql自带的黑窗口。如果使用mysql自带的黑窗口,需要在编写存储过程的时候要使用DELIMITER //命令,执行完成后,在编写存储过程,编写完成后,使用//来表示命令的结束。

    Mysql存储过程编写.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载