Memasang di semua skema
Untuk mendapatkan daftar skema, gunakan show databases;
. Gabungkan ini dengan -- use
:
use schemaA;
-- use schemaB;
-- use schemaC;
create procedure ...
Ulangi skema secara manual, hapus dan batalkan komentar use
klausa saat Anda melanjutkan, memeriksa apakah semuanya berhasil. Di MySQL Workbench, Ctrl+Shift+Enter adalah teman Anda.
Memasang rutinitas dalam subset skema
Biasanya Anda tidak ingin menginstal rutin tersimpan di semua skema di server, tetapi hanya di subset --- sering ditentukan oleh kumpulan skema yang sudah memiliki beberapa rutin tersimpan tertentu yang diinstal. Kemudian, seperti yang dibahas pada JADI , Anda dapat menggunakan kueri seperti ini untuk mendapatkan nama skema yang relevan:
SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine';
Verifikasi
Setelah menerapkan rutinitas, untuk memverifikasi keberadaannya, Anda dapat menggunakan kueri seperti ini:
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';
Kueri ini akan memeriksa apakah RoutineName1
, RoutineName2
dan RoutineName3
ada dalam skema database di server Anda yang memiliki FilteringRoutineName
rutin . Jika rutinitas hilang, itu akan ditandai dengan ####
.
Tentu saja, ini hanya memeriksa keberadaan rutin. Untuk memverifikasi implementasinya, Anda mungkin memerlukan alat diff database (seperti Perbandingan MySQL atau yang serupa).