Скажем, я создал в БД некоторые определяемые пользователем типы,
т.е. СОЗДАТЬ ТИП abc ...
Можно ли тогда определить, существует ли определяемый пользователем тип или нет? Возможно, с помощью любой из информационных таблиц postgres?
Основная причина этого в том, что PostgreSQL, похоже, не поддерживает CREATE OR REPLACE TYPE ...
, и если определенный тип создается более одного раза , Я хочу иметь возможность сначала удалить существующий, а затем повторно загрузить новый.
Другая альтернатива
WITH namespace AS(
SELECT oid
FROM pg_namespace
WHERE nspname = 'my_schema'
),
type_name AS (
SELECT 1 type_exist
FROM pg_type
WHERE typname = 'my_type' AND typnamespace = (SELECT * FROM namespace)
)
SELECT EXISTS (SELECT * FROM type_name);