我收到了另一个团队的列名列表。为了确保所有字段列名在特定模式中都有效,我将它们放入一个临时表中。我现在想看看它们是否存在。当我尝试加入时information_schema.columns
,我收到以下错误:
ERROR: 0A000: Specified types or functions (one per INFO message) not supported on Redshift tables.
Column "c.column_name" has unsupported type "information_schema.sql_identifier".
Column "a.*" has unsupported type "pg_attribute".
Column "t.*" has unsupported type "pg_type".
Function "format_type(oid,integer)" not supported.
Function "format_type(oid,integer)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
Function "has_table_privilege(oid,text)" not supported.
我试图转换column_name
成不同的类型,但没有运气。谁能告诉我出了什么问题以及我如何实现这个目标?
PG_TABLE_DEF
亚马逊考虑
INFORMATION_SCHEMA.COLUMNS
使用Leader-Node Only 函数的内部函数。亚马逊并没有明智地重新定义标准化,而是INFORMATION_SCHEMA.COLUMNS
试图定义自己的专有版本。为此,他们提供了另一个PG_TABLE_DEF
似乎可以满足相同需求的功能。请注意中心关于将架构添加到search_path
.因此,使用您的示例代码(
NOT EXISTS
为了清楚起见而重写),也可以看看,