sql >> Databasteknik >  >> RDS >> Mysql

Hur kör man en fråga som är lagrad i en tabellkolumn MySQL?

Du kan använda en markör för att få varje REPORT_QUERYCT tabell och exekvera den med förberedda satser:

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

Efter att ha skapat proceduren kan du anropa som nedan:

anrop run_queries();

Det var allt.



  1. Real max_execution_time för PHP på linux

  2. docker postgres med initiala data kvarstår inte över commits

  3. MySQL-servern har försvunnit - på exakt 60 sekunder

  4. Förbättra vår onlinejobbportaldatamodell