PostgreSQL использует XID в качестве уникальной записи в таблице

Я не мог найти, как установить xid (тип идентификатора транзакции) должен быть уникальным в таблице. Он жалуется на отсутствие метода класса для btree, и я понятия не имею, как его обойти.

Это использует PostgreSQL 9.0.

Не удалось найти аналогичного вопроса на этих форумах или в Интернете.:-(

1 ответ

Решение

Причина в том, что нет <> оператор, определенный для типа данных xid (среди прочих). Пытаться:

SELECT '123'::xid <> '123'::xid

Не удается.
Вы можете обойти это ограничение, добавив уникальный индекс:

CREATE UNIQUE INDEX tbl_xid_col_uni_idx
ON tbl (cast(cast(xid_col AS text) AS int));
Другие вопросы по тегам