Instalando em todos os esquemas
Para obter uma lista dos esquemas, use
show databases;
. Combine isso com -- use
:use schemaA;
-- use schemaB;
-- use schemaC;
create procedure ...
Itere manualmente pelos esquemas, removendo e descomentando
use
cláusulas à medida que avança, verificando se tudo funciona. No MySQL Workbench, Ctrl+Shift+Enter é seu amigo. Instalando rotinas em um subconjunto de esquemas
Normalmente você não deseja instalar a rotina armazenada em todos esquemas em um servidor, mas apenas em um subconjunto --- geralmente definido pelo conjunto de esquemas que já possuem alguma rotina armazenada específica instalada. Em seguida, conforme discutido em SO , você pode usar uma consulta como esta para obter os nomes dos esquemas relevantes:
SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine';
Verificação
Após a implantação das rotinas, para verificar a existência delas, você pode usar uma consulta como esta:
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';
Esta consulta verificará se
RoutineName1
, RoutineName2
e RoutineName3
existem nos esquemas de banco de dados em seu servidor que possuem a rotina FilteringRoutineName
. Se uma rotina estiver faltando, ela será marcada com ####
. Claro, isso apenas verifica a existência de rotina. Para verificar sua implementação, você pode precisar de uma ferramenta de comparação de banco de dados (como MySQL Compare ou similar).