Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Instal Prosedur Tersimpan di Beberapa Basis Data

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).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada cara untuk memutar baris ke kolom di MySQL tanpa menggunakan CASE?

  2. mySQL mengembalikan semua baris ketika bidang =0

  3. MYSQL PHP Tidak Ada Basis Data yang Dipilih - Tidak Dapat Menemukan Kesalahan

  4. Bagaimana cara mendapatkan ukuran database MySQL untuk database Anda?

  5. Cara Menghitung Persentase Pertumbuhan Bulan Per Bulan di MySQL