table 이름이 table_1, table_2 .. 이런식으로 되어있을 때 table 번호를 바꿔가면서 데이터 수를 얻어오는 프로시저.


일일이 select 하기 번거로워서 찾아보다가 결국 답을 얻었다. :D


DELIMITER $$
CREATE PROCEDURE documentCount (
  IN p_start INT,
  IN p_end INT,
  IN id INT
)
BEGIN
  DECLARE table_iterator INT;
  DECLARE p_counter INT;
  
  SET p_counter = 0;
  SET table_iterator = p_start;

  WHILE table_iterator <= p_end DO
    SET @stm1 = CONCAT('SELECT count(*) INTO @tmp_counter FROM table_', table_iterator);
    SET @stm2 = CONCAT(' WHERE id=', id);
    SET @query = CONCAT(@stm1, @stm2);

    PREPARE get_count FROM @query;

    EXECUTE get_count;
    SET p_counter=p_counter+@tmp_counter;

    DROP PREPARE get_count;

    SET table_iterator = table_iterator + 1;
  END WHILE;
  SELECT p_counter;
END;
$$
DELIMITER ; 

참고한 사이트


http://www.sql.ru/forum/actualthread.aspx?tid=684898

Posted by DevMoon
,