如何在mysql中创建同义词

7

我在数据库B中有一个视图,我在数据库A中使用它。

我想为这个视图创建一个同义词。因为现在每次我都必须像这样写查询:

Select * from DBNAME.VIEWNAME

我只是想能够写作,不需要进行其他操作。

SELECT * FROM MYSYNONYMNAME

在MySQL中是否可以做到这一点?我在手册中没有找到太多信息...


什么是同义词?有许多定义。 - John Woo
真的吗?没有任何方法可以实现这个吗?对于数据库来说,这似乎是非常基本的事情... - Anthony
@Sharma:针对“成熟”的DBMS(数据库管理系统):-) PostgreSQL、Oracle、SQL Server - 这些都有这样的功能。MySQL选择了自己的方式,就像通常一样;-) - zerkms
在MySQL中创建一个同义词 - John Woo
@J W:那对于表格呢?PS:也许可以使用视图,但是这样可能会影响性能... - zerkms
显示剩余3条评论
2个回答

9

1
我相信背后一定有一个好的原因,但这只是不幸的。还是谢谢。 - Anthony
4
@Sharma:如果您发现了一些奇怪的东西 - 您可以简单地解释为:"在 MySQL 中通常不像其他数据库管理系统那样"。 - zerkms

4
显然,VIEW 可以作为 SYNONYM 使用:
DROP VIEW IF EXISTS `MYSYNONYMNAME` $$
CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER VIEW `MYSYNONYMNAME` AS
SELECT * FROM DBNAME.VIEWNAME $$

不确定性能或者在视图内嵌套视图时会受到什么限制。同时在基础表列发生变化时可能需要重新创建视图。
参考:http://blog.mclaughlinsoftware.com/2013/11/24/mysql-synonym/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接