0

我在 postgres 9.2 中有以下类型:

CREATE TYPE profile_categories AS ENUM
(
    'particulier',
    'professionel',
    'assureur',
    'manager'
);

所以我想注册它:

psycopg2.extras.register_composite('profile_categories', conn, globally=True)

但后来我得到了一个错误:

psycopg2.ProgrammingError: PostgreSQL type 'profile_categories' not found

我所有的 ENUM 类型都未能正确注册,而其他类型的注册很好,例如:

CREATE TYPE _result AS
(
    id                  TEXT,
    msg                 TEXT
);

如何注册 ENUM TYPEs?

4

1 回答 1

1

您的语句失败,因为 enum 不是复合类型。我浏览了文档,但找不到与枚举类型相关的任何内容。我可能会将其视为文本并捕获错误。

看起来注册过程(来自文档)在可能需要额外处理时使用,因此您可以处理点类型、几何类型、元组类型等。从数据库接收到 ENUM 类型时不需要处理,所以这个会有意义。

于 2013-05-06T03:46:01.367 回答