Installeren in alle schema's
Gebruik show databases;
. om een lijst van de schema's te krijgen . Combineer dit met -- use
:
use schemaA;
-- use schemaB;
-- use schemaC;
create procedure ...
Herhaal handmatig de schema's, verwijder use
. en verwijder de commentaar ervan clausules terwijl je verder gaat, controleren of alles werkt. In MySQL Workbench is Ctrl+Shift+Enter je vriend.
Het installeren van routines in een subset van schema's
Normaal gesproken wil je de opgeslagen routine niet installeren in all schema's op een server, maar alleen in een subset --- vaak gedefinieerd door de reeks schema's waarop al een specifieke opgeslagen routine is geïnstalleerd. Vervolgens zoals besproken op DUS , kunt u een zoekopdracht als deze gebruiken om de namen van de relevante schema's te krijgen:
SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine';
Verificatie
Na het implementeren van routines, om het bestaan ervan te verifiëren, kunt u een query als deze gebruiken:
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';
Deze query controleert of RoutineName1
, RoutineName2
en RoutineName3
bestaan in de databaseschema's op uw server met de routine FilteringRoutineName
. Als een routine ontbreekt, wordt deze gemarkeerd met ####
.
Dit controleert natuurlijk alleen op routinematig bestaan. Om hun implementatie te verifiëren, hebt u mogelijk een database-diff-tool nodig (zoals MySQL Compare of iets dergelijks).