Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguire una query memorizzata in una colonna della tabella MySQL?

Puoi usare un cursore per ottenere ogni REPORT_QUERY su CT tabella ed eseguirlo utilizzando le istruzioni preparate:

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$$

Dopo la procedura di creazione, puoi chiamare come di seguito:

chiama run_queries();

Questo è tutto.