Cài đặt trong tất cả các lược đồ
Để nhận danh sách các lược đồ, hãy sử dụng show databases;
. Kết hợp điều này với -- use
:
use schemaA;
-- use schemaB;
-- use schemaC;
create procedure ...
Lặp lại theo cách thủ công qua các lược đồ, xóa và bỏ ghi chú use
khi bạn tiếp tục, kiểm tra xem mọi thứ có diễn ra không. Trong MySQL Workbench, Ctrl + Shift + Enter là bạn của bạn.
Cài đặt quy trình trong một tập hợp con các lược đồ
Thông thường, bạn không muốn cài đặt quy trình được lưu trữ trong tất cả lược đồ trên một máy chủ, nhưng chỉ trong một tập hợp con --- thường được xác định bởi tập hợp các lược đồ đã được cài đặt một số quy trình được lưu trữ cụ thể. Sau đó, như đã thảo luận trên VẬY , bạn có thể sử dụng một truy vấn như thế này để lấy tên của các lược đồ có liên quan:
SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine';
Xác minh
Sau khi triển khai các quy trình, để xác minh sự tồn tại của chúng, bạn có thể sử dụng truy vấn như sau:
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';
Truy vấn này sẽ kiểm tra xem RoutineName1
, RoutineName2
và RoutineName3
tồn tại trong các lược đồ cơ sở dữ liệu trên máy chủ của bạn có quy trình FilteringRoutineName
. Nếu thiếu một quy trình, quy trình đó sẽ được đánh dấu bằng ####
.
Tất nhiên, điều này chỉ kiểm tra sự tồn tại thường xuyên. Để xác minh việc triển khai chúng, bạn có thể cần một công cụ khác biệt cơ sở dữ liệu (chẳng hạn như MySQL Compare hoặc tương tự).