postgresql – 添加约束以防止表中的NaN

我有一个columne,当前的形式是myVar REAL NOT NULL.这应该只是一个实际的数字.我可以添加什么样的约束来阻止myVar成为NaN?

解决方法

通常你需要一个特殊的函数来检测一个值是否为NaN(类似于require是null并且不是SQL的null的null测试)但是在PostgreSQL中,NaN = NaN is true

[…] In order to allow numeric values to be sorted and used in tree-based indexes,PostgreSQL treats NaN values as equal,and greater than all non-NaN values.

因此,直接比较的简单CHECK约束就足够了:

check (myvar <> 'NaN')

如果您愿意,可以包括演员阵容,但没有必要:

check (myvar <> 'NaN'::real)
check (myvar <> 'NaN'::numeric)

相关文章

文章浏览阅读601次。Oracle的数据导入导出是一项基本的技能,...
文章浏览阅读553次。开头还是介绍一下群,如果感兴趣polardb...
文章浏览阅读3.5k次,点赞3次,收藏7次。折腾了两个小时多才...
文章浏览阅读2.7k次。JSON 代表 JavaScript Object Notation...
文章浏览阅读2.9k次,点赞2次,收藏6次。navicat 连接postgr...
文章浏览阅读1.4k次。postgre进阶sql,包含分组排序、JSON解...