DROP PROCEDURE IF EXISTS 存儲過程名
DELIMITER // CREATE PROCEDURE 存儲過程名(IN 參數名,OUT 參數名 ...) BEGIN /*要寫的語句*/ END // DELIMITER ;
WHILE……DO……END WHILE
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 ;