Installerar i alla scheman
För att få en lista över scheman, använd show databases;
. Kombinera detta med -- use
:
use schemaA;
-- use schemaB;
-- use schemaC;
create procedure ...
Iterera manuellt genom scheman, ta bort och avkommentar use
klausuler när du går vidare, kontrollera att allt fungerar. I MySQL Workbench är Ctrl+Skift+Enter din vän.
Installera rutiner i en delmängd av scheman
Normalt vill du inte installera den lagrade rutinen i alla scheman på en server, men bara i en delmängd --- definieras ofta av uppsättningen scheman som redan har någon specifik lagrad rutin installerad. Sedan, som diskuterats på SÅ , kan du använda en fråga som denna för att få namnen på de relevanta schemana:
SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine';
Verifiering
Efter att ha distribuerat rutiner, för att verifiera att de finns, kan du använda en fråga som denna:
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';
Den här frågan kommer att kontrollera om RoutineName1
, RoutineName2
och RoutineName3
finns i databasscheman på din server som har rutinen FilteringRoutineName
. Om en rutin saknas kommer den att markeras med ####
.
Naturligtvis kontrollerar detta bara för rutinmässig existens. För att verifiera deras implementering kan du behöva ett databasdiff-verktyg (som MySQL Compare eller liknande).