MySQL是一種經常用于關系型數據庫管理系統的開源數據庫。而跨數據庫外鍵是一個實體可以引用到不同數據庫中的另一個實體的功能,MySQL也支持這一操作。
在MySQL中,跨數據庫外鍵可以通過使用Federated存儲引擎或InnoDB存儲引擎實現。Federated存儲引擎是一種在多臺MySQL服務器之間共享表格數據的存儲引擎,它可以自動將請求轉發到其他MySQL服務器上,并返回結果。而InnoDB存儲引擎是MySQL中的事務型引擎,它可以在創造跨數據庫外鍵時提供更好的性能和更嚴謹的約束。
CREATE TABLE foreign_table ( id INT(11) NOT NULL AUTO_INCREMENT, data VARCHAR(255) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE local_table ( id INT(11) NOT NULL AUTO_INCREMENT, data VARCHAR(255) NOT NULL, foreign_id INT(11) NOT NULL, PRIMARY KEY (id), CONSTRAINT fk_foreign_id FOREIGN KEY (foreign_id) REFERENCES foreign_db.foreign_table(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
在上面的代碼中,我們創建了一個外鍵的例子。local_table包含一個指向foreign_table的foreign_id列。fk_foreign_id約束確保了所有在local_table中插入的外鍵都引用了foreign_table中存在的值。foreign_db是指在另一個數據庫中的外部表。我們可以使用該語法輕松創建跨數據庫外鍵,前提是您有足夠的權限來在庫之間進行訪問。
總而言之,MySQL提供了跨數據庫外鍵的功能來實現多個實體之間的聯系。使用Federated或InnoDB存儲引擎,您可以在MySQL中輕松實現這些外鍵,并確保數據的合法性。
上一篇css隱藏背面