在另一个数据库中使用表

时间:2011-04-15 09:10:44

标签: mysql alias

我被要求为Web应用程序构建一个模块,该模块也将用作独立的网站。既然如此,我想使用一个单独的数据库,并想知道是否有办法在一个数据库中有一个表,是另一个数据库中的“指针”。

例如,我有数据库db1和db2

db1有表用户,所以我想让db2.users指向db1.users。

我知道我可以设置触发器,不能同步两个单独的表,但这听起来更酷:)

修改

所以在我的代码中我使用的是诸如

之类的SQL
select * from users

现在,在数据库级别,我希望“用户”实际上是db1.users。然后,如果我想,我可以删除别名/指针,“select * from users”将指向当前数据库中的users表。我想我正在寻找的是一种“全球化别名”的东西。

2 个答案:

答案 0 :(得分:7)

直接从其他数据库使用它?

SELECT ... FROM `db1`.`users` LEFT JOIN `db2`.`something`

答案 1 :(得分:4)

federated storage engine提供与您要求的功能类似的内容。 如果您的数据库位于同一个数据库服务器上,那么联合存储对我来说听起来有点过分。您可能希望改为create a view

如果db1不可用,这两种方法都没有用。正如Emmerman已经指出的那样,如果你想为db1不可用的情况做准备,你需要将数据存储在db2中。