sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo ejecutar una consulta que está almacenada en una columna de tabla MySQL?

Puede usar un cursor para obtener cada REPORT_QUERY en CT table, y ejecútelo usando sentencias 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$$

Después de crear el procedimiento, puede llamar de la siguiente manera:

llamar a ejecutar_consultas();

Eso es todo.