sql - oracle synonym用途




应该何时使用数据库同义词? (4)

在现有代码中具有硬编码的数据库对象名称时。

使用同义词可能会让您免于重写旧代码的痛苦,有时来自多个来源,这些来源有自己对表或数据库名称的想法。

例如,我已经看到为某些生产服务器编写的代码。 编码器方便地硬编码主表的名称是test_data ,它在他的工作站上运行良好。 使用同义词而不是重写他的代码让我早早回家。

我已经得到了语法,但我想知道是否有人可以提供一个说明性的用例,其中数据库同义词非常有用。


它非常适合在测试时暂存模拟表。 例如,如果源表包含数百万条记录,并且您希望测试一小部分数据,则可以使用同义词将源表重定向到您控制的较小表,以便您可以进行各种场景的演示。

这样,您可以更新/删除模拟表中的数据,而不会影响源表。 当您准备使用源表时,您需要做的就是重新定义同义词。


查看有关同义词Oracle文档

除了这里的其他答案,它们还常用于:

  • 为远程表提供易于使用的名称,即通过数据库链接
  • 您需要所有用户都可以访问的表,即公共同义词

比如说,当你需要编写一个写得不好的应用程序(不发出ALTER SESSION SET CURRENT_SCHEMA )来处理另一个模式时。

同义词主要用作此类案例的解决方法。 使用正确编写的应用程序,您几乎不必使用它们。





synonym