Phi*_*ord 6 postgresql datatypes dump restore
我正在从 PostgreSQL 9.1 转储并在 PostgreSQL 9.4 上恢复并收到此警告
pg_restore: WARNING: column "foobar" has type "unknown"
DETAIL: Proceeding with relation creation anyway.
Run Code Online (Sandbox Code Playgroud)
但是在恢复之后,我可以验证列“foobar”类型是否已定义且正确。
什么可能导致此警告?
CREATE VIEW
或者CREATE TABLE... AS SELECT
必须推断要创建的关系的列类型。有时上下文不足以猜测数据类型,例如当它只是一个字符串文字时。在这种情况下,它被创建为unknown
.
例子 :
test=> CREATE VIEW testview AS SELECT 'bla' AS foobar; 警告:“foobar”列的类型为“未知” 详细信息:无论如何都要继续创建关系。 创建视图
结果:
测试=> \d 测试视图 查看“public.testview” 专栏 | 类型 | 修饰符 --------+----------+----------- foobar | 未知 |
如果此视图是 pg_dumped 和 pg_restored,则将创建该列,就像unknown
再次提到的警告一样:
pg_restore:警告:列“foobar”的类型为“未知”
详细信息:仍然继续创建关系。
应创建表/视图以在需要时显式转换为列,如
CREATE VIEW testview AS SELECT 'bla'::text AS foobar;
Run Code Online (Sandbox Code Playgroud)
我们可以假设这是该警告的重点。
归档时间: |
|
查看次数: |
3655 次 |
最近记录: |