【问题标题】:How to create a synonym in mysql如何在mysql中创建同义词
【发布时间】:2013-03-24 12:47:30
【问题描述】:

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

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

Select * from DBNAME.VIEWNAME

我只是希望能够写作

SELECT * FROM MYSYNONYMNAME

在mysql中可以做到吗?我在手册中没有看到太多..

【问题讨论】:

  • 同义词是什么意思?它有很多定义。
  • 对不起,我的意思是同义词,因为名称中指向某物。我已经用我想要实现的示例更新了这个问题。
  • MySQL 不支持。
  • 真的吗?有没有办法做到这一点?对于数据库来说,这似乎是一件非常基本的事情......
  • @Sharma:对于“成熟”的 dbms :-) postgresql、oracle、sql server - 所有这些都有这样的功能。 Mysql 像往常一样选择了自己的方式 ;-)

标签: mysql synonym


【解决方案1】:

无法在 mysql 中创建类似 it's possible in Oracle 的同义词

【讨论】:

  • 我确信这背后有充分的理由,但这只是不幸的。不过谢谢
  • @Sharma:如果你看到一些奇怪的东西——那么你可以简单地解释一下:“在 mysql 中它通常不像在其他 DMBS 中那样”
【解决方案2】:

显然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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多