PostgreSQL использует XID в качестве уникальной записи в таблице - PullRequest
2 голосов
/ 17 марта 2012

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

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

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

1 Ответ

4 голосов
/ 17 марта 2012

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

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

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

CREATE UNIQUE INDEX tbl_xid_col_uni_idx
ON tbl (cast(cast(xid_col AS text) AS int));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...