Instalace do všech schémat
Chcete-li získat seznam schémat, použijte show databases;
. Zkombinujte to s -- use
:
use schemaA;
-- use schemaB;
-- use schemaC;
create procedure ...
Ručně iterujte schémata, odstraňte a odkomentujte use
klauzule, jak postupujete dál a kontrolujete, zda vše funguje. V MySQL Workbench je váš přítel Ctrl+Shift+Enter.
Instalace rutin do podmnožiny schémat
Normálně nechcete instalovat uloženou rutinu do všech schémata na serveru, ale pouze v podmnožině --- často definováno sadou schémat, která již mají nainstalovanou nějakou konkrétní uloženou rutinu. Poté jak je uvedeno na TAK , můžete použít dotaz jako tento k získání názvů příslušných schémat:
SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine';
Ověření
Po nasazení rutin můžete k ověření jejich existence použít dotaz jako tento:
SELECT distinct
r1.ROUTINE_SCHEMA,
case when r2.specific_name is not null then '' else '####' end as RoutineName1,
case when r3.specific_name is not null then '' else '####' end as RoutineName2,
case when r4.specific_name is not null then '' else '####' end as RoutineName3
FROM
`information_schema`.`ROUTINES` as r1
LEFT JOIN (select * from `information_schema`.`ROUTINES` where specific_name = 'RoutineName1') as r2 on r1.routine_schema = r2.routine_schema
LEFT JOIN (select * from `information_schema`.`ROUTINES` where specific_name = 'RoutineName2') as r3 on r1.routine_schema = r3.routine_schema
LEFT JOIN (select * from `information_schema`.`ROUTINES` where specific_name = 'RoutineName3') as r4 on r1.routine_schema = r4.routine_schema
where
r1.specific_name = 'FilteringRoutineName';
Tento dotaz zkontroluje, zda RoutineName1
, RoutineName2
a RoutineName3
existují v databázových schématech na vašem serveru, která mají rutinu FilteringRoutineName
. Pokud rutina chybí, bude označena ####
.
To samozřejmě kontroluje pouze rutinní existenci. K ověření jejich implementace možná budete potřebovat nástroj pro porovnání databáze (jako je MySQL Compare nebo podobný).