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));