在postgres中为类型双精度添加检查约束

时间:2013-03-20 14:05:58

标签: postgresql char string-length double-precision

我在列中具有双精度类型的坐标。我想检查小数点前(小数点前)的长度(必须是7)。这些数字的小数最多可达4个。

我的第一个想法:

CHECK (char_length(point_gauss::double precision::char)=...

1 个答案:

答案 0 :(得分:0)

对于浮点,请记住这些是二进制浮点类型,因此小数精度是一个有问题的概念。你的第一直觉应该是:

 CHECK(point_gauss BETWEEN -9999.999 AND 9999.999)

但是,如果您需要特定的10精度,最好的方法是从double更改为numeric并改为使用它:

 point_gauss NUMERIC(7,3),....