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

क्या एक संग्रहित प्रक्रिया दो अलग-अलग डेटाबेस के साथ काम कर सकती है? दो सर्वरों के बारे में कैसे?

यदि हम एक ही सर्वर पर दो डेटाबेस के बारे में बात कर रहे हैं:हाँ, एक संग्रहीत प्रक्रिया दूसरे डेटाबेस तक पहुँच सकती है। आपको यह सुनिश्चित करना होगा कि जिस उपयोगकर्ता के विशेषाधिकारों के तहत प्रक्रिया चल रही है, उसके पास प्रत्येक डेटाबेस पर आवश्यक विशेषाधिकार हैं।

उदाहरण के लिए, मान लें कि आपके पास एक ही सर्वर पर दो डेटाबेस हैं, mydb1 और mydb2 , और प्रत्येक में messages . नाम की एक तालिका होती है एक ही संरचना के साथ। मान लीजिए कि आप mydb2 . में एक संग्रहित प्रक्रिया जोड़ना चाहते हैं जो messages . को खाली करता है mydb2 में तालिका और messages . की सामग्री को कॉपी करता है mydb1 में तालिका . आप यह कर सकते हैं:

CREATE PROCEDURE `SynchroniseMessages` ()
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY DEFINER
BEGIN

DELETE FROM `mydb2`.`messages`;

INSERT INTO
    `mydb2`.`messages`
    SELECT * FROM `mydb1`.`messages`;

END

देखें कि मैंने उन डेटाबेस के साथ तालिकाओं को पूरी तरह योग्यता कैसे प्राप्त की है जिनसे वे संबंधित हैं। वास्तव में आप यह तर्क दे सकते हैं कि मैं यहां अति उत्साही हो रहा हूं, क्योंकि हमने निर्दिष्ट किया है कि यह संग्रहीत कार्यविधि mydb2 में होगी . मुझे mydb2 जोड़ने की जरूरत नहीं है . क्वालीफायर यदि संग्रहीत कार्यविधि mydb1 . में थी डेटाबेस, मुझे उन क्वालिफायर की आवश्यकता होगी, लेकिन इसके विपरीत मुझे mydb1 की आवश्यकता नहीं होगी . जहां यह दिखाई देता है।

इस प्रक्रिया को चलाने में सक्षम होने के लिए (संभवतः इसे परिभाषित करने में सक्षम होने के लिए?), मुझे यह सुनिश्चित करना होगा कि मेरे उपयोगकर्ता के पास DELETE है और INSERT mydb2 . पर विशेषाधिकार , और SELECT . भी mydb1 . पर विशेषाधिकार ।

विभिन्न सर्वरों पर डेटाबेस अधिक जटिल लगता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पंक्ति 1 पर कॉलम 'अग्रिम' के लिए MySQL डेटा छोटा कर दिया गया है

  2. कैसे तैयार बयान के साथ एक बार में एक mysql डेटाबेस में कई पंक्तियों को सम्मिलित करने के लिए?

  3. MySQL में CHAR_LENGTH () क्या है?

  4. Ubuntu 15 में मैसकल मैक्स-कनेक्शन के लिए max_open_files नहीं बढ़ा सकते हैं

  5. MySQL त्रुटि:अद्यतन और सीमा का गलत उपयोग