Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एकाधिक डेटाबेस पर संग्रहीत प्रक्रिया स्थापित करें

सभी स्कीमा में इंस्टॉल करना

स्कीमा की सूची प्राप्त करने के लिए, show databases; . का उपयोग करें . इसे -- use :

use schemaA;
-- use schemaB;
-- use schemaC;

create procedure ...

स्कीमा के माध्यम से मैन्युअल रूप से पुनरावृति करें, use . को हटाकर और बिना टिप्पणी किए जैसे-जैसे आप आगे बढ़ते हैं, यह जाँचता है कि सब कुछ ठीक हो गया है। MySQL कार्यक्षेत्र में, Ctrl+Shift+Enter आपका मित्र है।

स्कीमा के सबसेट में रूटीन इंस्टॉल करना

आम तौर पर आप संग्रहीत रूटीन को सभी . में स्थापित नहीं करना चाहते हैं सर्वर पर स्कीमा, लेकिन केवल सबसेट . में --- अक्सर स्कीमा के सेट द्वारा परिभाषित किया जाता है जिसमें पहले से ही कुछ विशिष्ट संग्रहीत दिनचर्या स्थापित होती है। फिर, जैसा कि पर चर्चा की गई है SO , आप प्रासंगिक स्कीमा के नाम प्राप्त करने के लिए इस तरह की एक क्वेरी का उपयोग कर सकते हैं:

SELECT ROUTINE_SCHEMA FROM `information_schema`.`ROUTINES` where specific_name = 'MyRoutine'; 

सत्यापन

दिनचर्या को परिनियोजित करने के बाद, उनके अस्तित्व को सत्यापित करने के लिए, आप इस तरह की एक क्वेरी का उपयोग कर सकते हैं:

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'; 

यह क्वेरी जाँच करेगी कि क्या RoutineName1 , RoutineName2 और RoutineName3 आपके सर्वर पर डेटाबेस स्कीमा में मौजूद है जिसमें नियमित FilteringRoutineName . है . यदि कोई रूटीन गायब है, तो उसे #### with से चिह्नित किया जाएगा ।

बेशक, यह केवल नियमित अस्तित्व के लिए जाँच करता है। उनके कार्यान्वयन को सत्यापित करने के लिए, आपको डेटाबेस भिन्न उपकरण (जैसे MySQL तुलना या समान) की आवश्यकता हो सकती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रपत्र और प्रदर्शन परिणामों के साथ mysqli तालिका खोजें

  2. JDBC कैरेक्टर एन्कोडिंग

  3. टाइमस्टैम्प फ़ील्ड की समय सीमा समाप्त होने के बाद MySQL को ऑटो अपडेट कैसे करें

  4. mysql 5.7 . में माइग्रेशन के बाद क्वेरी बेहद धीमी

  5. JDBC के माध्यम से MySQL में UTF-8 डालने का प्रयास करते समय गलत स्ट्रिंग मान?