Удалить with schemabinding
:
CREATE VIEW public.contactrelationsdual AS
SELECT (CASE d.id WHEN 0 THEN cr.contactId ELSE cr.relatedContactId
END) as me,
(CASE d.id WHEN 0 THEN cr.relatedContactId ELSE cr.contactId
END) as him,
cr.id,
cr.permissionId
FROM public.contact_relations cr CROSS JOIN
public.system_dual d
WHERE cr.contactId > 0 AND
cr.relatedContactId > 0 AND
cr.deletedDate IS NULL;
Это довольно стандартный SQL и должен работать практически на любой базе данных.
IF EXISTS
деталь может быть заменена на:
drop view if exists public.contactrelationsdual;
Нет необходимости в кластеризованном индексе в Redshift.