Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como executar uma consulta que está armazenada em uma coluna da tabela MySQL?


Você pode usar um cursor para obter cada REPORT_QUERY em CT table e execute isso usando instruções preparadas:
delimiter $$
drop procedure if exists run_queries$$
create procedure run_queries()
begin

    declare s_query varchar(255);

    declare done bool default false;
    declare c_queries cursor for    
        select REPORT_QUERY from CT;
    declare continue handler for not found set done = true;


    open c_queries;
    read_loop: loop

        fetch c_queries into s_query;
        if done then 
            leave read_loop;
        end if;

        -- run the query
        set @sql = s_query;
        prepare stmt from  @sql;
        execute stmt;
        deallocate prepare stmt;
    end loop;

end$$

Após criar o procedimento, você pode chamar conforme abaixo:

chamar run_queries();

É isso.