Instalación en todos los esquemas
Para obtener una lista de los esquemas, use show databases;
. Combine esto con -- use
:
use schemaA;
-- use schemaB;
-- use schemaC;
create procedure ...
Iterar manualmente a través de los esquemas, eliminando y descomentando use
cláusulas a medida que avanza, comprobando que todo funciona. En MySQL Workbench, Ctrl+Shift+Enter es tu amigo.
Instalación de rutinas en un subconjunto de esquemas
Normalmente no desea instalar la rutina almacenada en todos esquemas en un servidor, pero solo en un subconjunto --- a menudo definido por el conjunto de esquemas que ya tienen instalada alguna rutina almacenada específica. Luego, como se discutió en SO , puede usar una consulta como esta para obtener los nombres de los esquemas relevantes:
SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine';
Verificación
Después de implementar las rutinas, para verificar la existencia de las mismas, puede usar una 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á si RoutineName1
, RoutineName2
y RoutineName3
existen en los esquemas de la base de datos en su servidor que tienen la rutina FilteringRoutineName
. Si falta una rutina, se marcará con ####
.
Por supuesto, esto solo verifica la existencia de rutina. Para verificar su implementación, es posible que necesite una herramienta de comparación de bases de datos (como MySQL Compare o similar).