Nur um die Antwort von @ Michael ein wenig zu erweitern, aber während das Verweisen auf ein allgemeines Schema der richtige Weg ist, können Sie "Aliase" in lokalen Datenbanken erstellen, um die Verwaltung zu vereinfachen.
Zum Beispiel arbeite ich mit einem MySQL-Derivat, das noch nicht über die UUID_TO_BIN
Funktion von MySQL 8 verfügt. Daher habe ich mein eigenes erstellt und es in einer Datenbank speziell für globale Inhalte gespeichert, die ich aufgerufen habe common
. Um auf diese Funktion zu verweisen, muss ich sie jetzt common.UUID_TO_BIN
in all meinen Abfragen und gespeicherten Prozeduren verwenden. Kein großes Problem, aber nicht ganz so einfach wie das einfache Aufrufen UUID_TO_BIN
(wie wenn die native Funktion verfügbar wäre).
Also habe ich auch einen "Alias" zu jeder meiner Datenbanken hinzugefügt:
CREATE FUNCTION `UUID_TO_BIN`(a_uuid CHAR(36), a_reorder BOOL) RETURNS binary(16)
DETERMINISTIC
RETURN `common`.UUID_TO_BIN(a_uuid, a_reorder);
Auf diese Weise kann ich in jeder Datenbank, die ich diesen "Alias" hinzufüge, jetzt einfach aufrufen, UUID_TO_BIN(some_uuid, TRUE)
ohne dass ein Datenbankname hinzugefügt wird, aber ohne den Aufwand, die gesamte Funktion zu duplizieren, dh wenn ich die Funktion aus irgendeinem Grund ändern oder optimieren musste, nur ich müssen dies an einem einzigen Ort tun ( common.UUID_TO_BIN
), anstatt jede einzelne Datenbank zu aktualisieren.
Wenn ich später ein Upgrade auf eine Datenbank mit einem nativen UUID_TO_BIN
System durchführe, kann ich auch einfach alle meine "Alias" -Funktionen entfernen. Alle vorhandenen Abfragen und Prozeduren verwenden sie jetzt ohne weitere Änderungen. Oder wenn die globale Funktion in eine andere Datenbank verschoben werden soll, muss ich nur meine Aliase aktualisieren und nicht jede einzelne meiner Abfragen, die sie verwenden.
Ich bin mir nicht sicher, wie intelligent MySQL ist, wenn es darum geht, eine Funktion zu optimieren, die einfach eine andere Funktion aufruft. Daher kann die Umleitung auf diese Weise mit geringen Kosten verbunden sein, aber ich denke, es lohnt sich für die vereinfachte Verwaltung Beibehaltung nur einer einzigen "globalen" Definition.