Instalowanie we wszystkich schematach
Aby uzyskać listę schematów, użyj show databases;
. Połącz to z -- use
:
use schemaA;
-- use schemaB;
-- use schemaC;
create procedure ...
Ręcznie przechodź przez schematy, usuwając i odkomentowując use
klauzule, gdy idziesz dalej, sprawdzając, czy wszystko działa. W środowisku MySQL Workbench Ctrl+Shift+Enter jest Twoim przyjacielem.
Instalowanie procedur w podzbiorze schematów
Zwykle nie chcesz instalować zapisanej procedury w wszystkich schematy na serwerze, ale tylko w podzbiorze --- często definiowane przez zestaw schematów, które mają już zainstalowaną określoną procedurę przechowywaną. Następnie jak omówiono w TAK , możesz użyć takiego zapytania, aby uzyskać nazwy odpowiednich schematów:
SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine';
Weryfikacja
Po wdrożeniu procedur, aby zweryfikować ich istnienie, możesz użyć zapytania takiego:
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';
To zapytanie sprawdzi, czy RoutineName1
, RoutineName2
i RoutineName3
istnieją w schematach baz danych na twoim serwerze, które mają procedurę FilteringRoutineName
. Jeśli brakuje procedury, zostanie ona oznaczona ####
.
Oczywiście sprawdza się to tylko pod kątem rutynowego istnienia. Aby zweryfikować ich implementację, możesz potrzebować narzędzia do porównywania baz danych (takiego jak MySQL Compare lub podobne).