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 TYPE は正しく登録できませんでしたが、他のタイプは次のように正常に登録されます。

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

ENUM TYPE を登録するには?

4

1 に答える 1

1

enum は複合型ではないため、ステートメントは失敗しています。ドキュメントを調べたところ、列挙型に関連するものは何も見つかりませんでした。私はおそらくそれをテキストとして扱い、エラーをトラップします。

ポイントタイプ、幾何学的タイプ、タプルタイプなどを処理できるように、追加の処理が必要な場合に(ドキュメントからの)登録プロセスが使用されるようです。ENUMタイプは、データベースから受信したときに処理を必要としないため、これ理にかなっています。

于 2013-05-06T03:46:01.367 に答える