Dans MySQL, vous pouvez vous connecter à plusieurs bases de données sur différents serveurs et effectuer des jointures entre elles. Ceci peut être réalisé en utilisant soit le moteur de stockage FEDERATED, soit en utilisant des serveurs liés dans un autre SGBD, tel que MS SQL Server.
Le moteur de stockage FEDERATED vous permet de créer un table qui référence des tables sur d’autres serveurs. Pour utiliser FEDERATED, vous devez créer un wrapper de données étrangères qui spécifie les paramètres de connexion pour le serveur distant. Une fois que vous avez créé le wrapper de données étrangères, vous pouvez créer une table fédérée qui fait référence à la table distante. La table fédérée peut ensuite être utilisée dans des requêtes comme n'importe quelle autre table.
Voici un exemple de création d'une table fédérée :
CREATE FOREIGN DATA WRAPPER my_wrapper OPTIONS ( HOST 'server2', PORT '3306', USER 'username', PASSWORD 'password' ); CREATE FOREIGN TABLE my_table ( id INT, name VARCHAR(255) ) SERVER my_wrapper OPTIONS ( TABLE_NAME 'my_table' );
Une fois la table fédérée créée, vous pouvez l'utiliser dans des requêtes comme n'importe quelle autre table :
SELECT * FROM my_table;
Si vous utilisez MS SQL Server, vous pouvez utiliser des serveurs liés pour vous connecter à d'autres bases de données sur différents serveurs. Les serveurs liés vous permettent d'exécuter des requêtes sur des tables distantes comme s'il s'agissait de tables locales.
Pour créer un serveur lié, utilisez la procédure stockée sp_addlinkedserver :
EXEC sp_addlinkedserver @server = 'server2', @srvproduct = 'MySQL'
Une fois que le serveur lié a été créé, vous pouvez l'utiliser dans des requêtes comme n'importe quel autre serveur :
SELECT * FROM server2.my_database.dbo.my_table;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!