Kann eine Stored Procedure mit zwei verschiedenen Datenbanken arbeiten? Wie wäre es mit zwei Servern?
Frage ich mich, ob MySQL hat gespeicherte Prozeduren können mit zwei verschiedenen Datenbanken auf der gleichen Maschine? Wie wäre es, wenn Sie auf verschiedenen Servern?
InformationsquelleAutor der Frage Pentium10 | 2010-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn wir reden über zwei Datenbanken auf dem gleichen server: ja, kann eine gespeicherte Prozedur Zugriff auf eine andere Datenbank. Sie haben, um sicherzustellen, dass der Benutzer, unter dessen Berechtigungen das Verfahren ausgeführt wird, hat die erforderlichen Berechtigungen für jede Datenbank.
Angenommen, Sie haben zwei Datenbanken auf dem gleichen server
mydb1
undmydb2
an, und jede enthält eine Tabelle mit dem Namenmessages
mit der gleichen Struktur. Angenommen, Sie möchten eine gespeicherte Prozedur hinzufügen, ummydb2
, leert diemessages
Tabelle inmydb2
und kopiert den Inhalt desmessages
Tabelle inmydb1
. Sie könnten dies tun:Sehen, wie ich die voll qualifizierte sich die Tabellen mit den Datenbanken, zu denen Sie gehören. In der Tat könnte man argumentieren, dass ich bin über-eifrigen hier, weil wir angegeben, dass diese gespeicherte Prozedur gehört in
mydb2
. Ich brauche nicht hinzuzufügen, diemydb2
. qualifier". Wenn die gespeicherte Prozedur waren in dermydb1
Datenbank, die ich brauchen würde, diese Qualifikation aber Umgekehrt würde ich nicht brauchen, diemydb1
. wo es angezeigt wird.Um der Lage sein, um diese Prozedur ausführen (möglicherweise, um in der Lage sein, es zu definieren?), Ich brauche zu machen sicher, dass mein Benutzer hat
DELETE
undINSERT
Privilegien aufmydb2
und auchSELECT
Privilegien aufmydb1
.Datenbanken auf verschiedenen Servern klingt eher kompliziert.
InformationsquelleAutor der Antwort Hammerite
Können Sie Auch Verschiedene Datenbanken auf verschiedenen Servern, aber Sie müssen Sie zu verbinden, und verwenden Sie ein demselben Konto (zum Beispiel ein active directory-Konto) für die beiden von Ihnen zu verbinden
InformationsquelleAutor der Antwort Hadi Forghani
IMHO kann es funktionieren mit 2 Datenbanken auf einem server, aber nur, wenn Sie die gleichen login-Daten ist Es nicht möglich auf 2 verschiedenen Servern.
Die gespeicherte Prozedur ausgeführt wird, unter einem Datenbank-Verbindung. Alle Datenbanken, die Verbindung, die die login-Zugang hat, sind in der gespeicherten Prozedur.
InformationsquelleAutor der Antwort Yasen Zhelev
Verwenden Sie einfach die databasename.tablename-notation. Remote-Datenbanken - ich weiß nicht, wie MySQL.. ist Es möglich in MS SQL Server.
InformationsquelleAutor der Antwort Seva Alekseyev