Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich datenbankübergreifende Fremdschlüsselbeziehungen in MySQL InnoDB?
Fremdschlüsselbeziehungen zwischen Datenbanken in MySQL InnoDB
MySQL InnoDB bietet die Möglichkeit, Fremdschlüsseleinschränkungen über Tabellen hinweg festzulegen, die sich in verschiedenen Datenbanken befinden. Mit dieser Funktionalität können Sie die Datenintegrität aufrechterhalten, wenn Sie auf Daten von externen Datenbanken verweisen.
Datenbankübergreifende Fremdschlüssel erstellen
Um einen datenbankübergreifenden Fremdschlüssel zu erstellen, geben Sie ihn einfach an die Zieltabelle in der anderen Datenbank unter Verwendung ihres vollständig qualifizierten Namens, wie zum Beispiel:
ALTER TABLE my_table ADD FOREIGN KEY (fk_column) REFERENCES other.other_table(pk_column)
In diesem Beispiel ist other die Name der anderen Datenbank, other_table ist die Zieltabelle, pk_column ist der Primärschlüssel in der Zieltabelle und fk_column ist die Fremdschlüsselspalte in my_table.
Beispiel
Angenommen, Sie haben zwei Datenbanken, „Sales“ und „Customers“, und Sie möchten einen datenbankübergreifenden Fremdschlüssel von der Tabelle „Orders“ in der Datenbank „Sales“ zur Tabelle „Customers“ erstellen in der Kundendatenbank. Sie können dies mit der folgenden SQL-Anweisung tun:
ALTER TABLE sales.orders ADD FOREIGN KEY (customer_id) REFERENCES customers.customers(customer_id)
Jetzt wird jeder Datensatz in der Auftragstabelle, der auf einen nicht vorhandenen Kunden in der Kundentabelle verweist, als ungültig betrachtet und nicht in die Datenbank eingefügt .
Einschränkungen
Es ist wichtig zu beachten, dass es keine dokumentierten Einschränkungen für die Erstellung datenbankübergreifender Datenbanken gibt Fremdschlüssel in InnoDB. Es wird jedoch empfohlen, die Auswirkungen solcher Beziehungen auf die Leistung zu berücksichtigen, insbesondere wenn sich die Datenbanken auf verschiedenen Servern befinden.
Das obige ist der detaillierte Inhalt vonWie erstelle ich datenbankübergreifende Fremdschlüsselbeziehungen in MySQL InnoDB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!