DB2 z / OS - 为现有表表创建表别名/同义词,指向其他现有表

时间:2016-04-28 15:10:41

标签: sql db2 alias synonym zos

是否可以为现有表创建指向其他现有表的别名或同义词?

情况:我有一个基于Java和Hibernate的工具,我开展了一项任务,将一些区域从旧的数据库表(SchemaOLD.TableOLD)迁移到新表({ {1}})(所有这些都发生在同一个DB服务器上)。事情很接近 DONE ,但我发现一些传统的第三方组件仍然指向原始位置(SchemaNEW.TableNEW)。由于几个业务限制,我不得不寻找更快的替代解决方案(而不是迁移那些其他组件......)。

我需要以某种方式让数据库服务器将 SchemaOLD.TableOLD 字符串“解析”为新的 SchemaOLD.TableOLD ,以便那些遗产在实际从新位置检索数据时,组件将不受干扰地运行。我需要在 中进行此操作,而旧表和新表仍然存在于数据库 中。

这有可能吗? 什么是最好的解决方案,别名或同义词?这两者之间的区别对我来说有点不清楚......

谢谢。

1 个答案:

答案 0 :(得分:2)

如果您想使用ALIASSYNONYM,则应使用ALIAS。以下是SYNONYM知识中心页面中的说明:

  

重要:使用别名而不是同义词。同义词   类似于别名,但仅支持兼容   以前的版本。未来的版本可能无法使用同义词   DB2®。 DB2 for z /OS®的同义词行为与使用   其他DB2系列产品。编写新SQL时不要使用同义词   语句或创建便携式应用程序时。

另一种选择可能是VIEW

CREATE VIEW SchemaOLD.TableOLD AS
    SELECT * FROM SchemaNEW.TableNEW

如果您还需要阻止旧实用程序更新“新”表,您可能会考虑在该视图上使用trigger