根据我对 PostgreSQL 文档的阅读,ALTER TYPE
我应该能够执行以下操作:
CREATE TYPE compfoo AS OBJECT (f1 int, f2 text);
CREATE TYPE compbar AS OBJECT (f1 int, f2 compfoo);
ALTER TYPE compbar DROP ATTRIBUTE f2;
ALTER TYPE compbar ADD ATTRIBUTE f2 varying(1000);
ALTER TYPE compbar ADD ATTRIBUTE f3 compfoo;
但是,当我尝试它时,我收到以下错误:
ERROR: ALTER TYPE ADD/DROP COLUMN statement not supported for object types
我在这里想念什么?是否有允许我这样做的服务器配置?是因为所讨论的类型是复合OBJECT
类型,而不是“基本”类型的复合吗?
更新 2015-02-10
我已经更新了标题,样本更接近手头的问题。简而言之,在 Postgres Plus Advanced Server 中,还有用于创建类型的附加语法,格式为CREATE TYPE foo AS OBJECT
<--- 该语法是问题的根源。创建复合类型时不能更改属性AS OBJECT
。