mysql存儲過程

1、相關語法 :

    1.存儲過程的語法

        1.刪除

DROP PROCEDURE IF EXISTS 存儲過程名

         2.定義

 DELIMITER // 
                CREATE PROCEDURE 存儲過程名(IN 參數名,OUT 參數名 ...)

                BEGIN 

                        /*要寫的語句*/

                END
                 //
                DELIMITER ; 

           

      3.while的語法(之一)

WHILE……DO……END WHILE

            

2、相關示例:

1.循環遍歷多張表並查詢出結果

DROP PROCEDURE IF EXISTS proc1;
DELIMITER // 
CREATE PROCEDURE proc1(IN field_name VARCHAR(10),IN field_value VARCHAR(32)) 
BEGIN 
    DECLARE v_sql VARCHAR(500);
    DECLARE n BIGINT;
    SET n=0;
    WHILE n<9 DO
            SET v_sql= CONCAT('SELECT * FROM ai_agent_',n,' a WHERE ',field_name,' = \'',field_value,'\'');
            SELECT v_sql;
            SET @v_sql_=v_sql;   /*--注意很重要,將連成成的字符串賦值給一個變量(能夠以前沒有定義,但要以@開頭)*/
            PREPARE stmt FROM @v_sql_;  /*--預處理須要執行的動態SQL,其中stmt是一個變量*/
            EXECUTE stmt;      /*--執行SQL語句*/
            DEALLOCATE PREPARE stmt;     /*釋放掉預處理段*/
        SET n=n+1;
    END WHILE;
     
END
//  
DELIMITER ; 
相關文章
相關標籤/搜索