Добавить ограничение для предотвращения NaN в таблице - PullRequest
0 голосов
/ 03 мая 2018

У меня есть столбец, что ток имеет форму myVar REAL NOT NULL. Это должно быть только действительное число. Какие ограничения я могу добавить, чтобы myVar не стал NaN?

1 Ответ

0 голосов
/ 03 мая 2018

Обычно вам требуется специальная функция, чтобы определить, является ли значение NaN (аналогично требованию is null и is not null тестов для SQL null), но в PostgreSQL NaN = NaN равно true :

[...] Чтобы разрешить сортировку и использование числовых значений в древовидных индексах, PostgreSQL рассматривает значения NaN как равные и превышающие все значения, отличные от NaN.

Итак, достаточно простого ограничения CHECK с прямым сравнением:

check (myvar <> 'NaN')

Вы можете включить приведение, если хотите, но не обязательно:

check (myvar <> 'NaN'::real)
check (myvar <> 'NaN'::numeric)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...