Reputation: 9042
Oracle's database link allows user to query on multiple physical databases.
Is there any MySQL equivalent ? Workaround ?
I want to run a join query on two tables , which are in two physical databases. Is it possible in MySQL ?
Upvotes: 29
Views: 64853
Reputation: 83632
I can think of four possible workarounds for your scenario:
dbname.tablename
-syntax to access tables outside the current database scope. This requires that the currently connected user has the appropriate rights to read from the requested table in another physical db.FEDERATED
MySQL storage engine to virtually import the table into your current database. This lifts the requirement of giving the current user access rights into the second database as the credentials are given with the CREATE TABLE
-statement when using the FEDERATED
storage engine. This also works with the databases running on different physical servers or different MySQL instances. I think that this will be the poorest performing option and does have some limitations - more or less important depending on your usage scenario and your requirements.SELECT <<columns>> FROM <<database>>.<<table>>
. This resemble the way, the FEDERATED
-method works, but is limited to tables on the same MySQL instance.Personally I'd consider method (4) as the most useful - but the others could also be possible workarounds depending on your requirements.
Upvotes: 46
Reputation: 36297
There's no MySQL equavilent method at the moment, see this post. However as the poster suggest you can do a work-around if the databases are on the same machine, by just adding the database-name in front of the table-name.
Also see this, it's 6 years old, but still not resolved. It's closed and probably not on their todo-list anymore.
Upvotes: 6