我正在将此 Oracle 命令迁移到 PostgreSQL:
CREATE SYNONYM &user..emp FOR &schema..emp;
请向我建议如何迁移上述命令。
我正在将此 Oracle 命令迁移到 PostgreSQL:
CREATE SYNONYM &user..emp FOR &schema..emp;
请向我建议如何迁移上述命令。
PostgreSQL 不支持 SYNOSYM 或 ALIAS。Synonym 是 Microsoft SQL 2005 实现的非 SQL 2003 功能(我认为)。虽然它确实提供了一个有趣的抽象,但由于缺乏关系完整性,它可以被认为是一种风险。
也就是说,您可以创建一个同义词,向您的程序员宣传,围绕它编写代码,包括存储过程,然后有一天这个同义词(或链接或指针)的后端被更改/删除/等导致运行时间错误。我什至不认为准备会抓住这一点。
它与 unix 中的符号链接和 C/C++ 中的空指针相同。
而是创建一个数据库视图,只要它只包含一个表选择,它就已经可以更新。
CREATE VIEW schema_name.synonym_name AS SELECT * FROM schema_name.table_name;
你不需要同义词。
有两种方法:
使用模式搜索路径:
ALTER DATABASE xyz SET search_path = schema1, schema2, ...;
将保存表的模式放在search_path数据库(或用户)上,那么它可以在没有模式限定的情况下使用。
使用视图:
CREATE VIEW dest_schema.tab AS SELECT * FROM source_schema.tab;
如果您在同一架构中有很多对象的同义词,则第一种方法很好。