如何将十进制数限制为 3 位作为约束检查 (SQL)

How to restrict to 3 digits a decimal number as a constraint check (SQL)

我需要使用约束来检查列值 (poid) 是否大于 0 并且在“.”之后不超过 3 个数字。 (这是我 might/will 面临的一道考试题)

检查 poid 是否大于 0 很容易。

我有 google-它,人们说这在数据库端是不可能的,因为这需要像这样的格式输出来完成。

decimal(5,3) 将列限制为 3 位,但我们仍然可以输入超过 3 位,这是我不想要的

这是我目前所拥有的(只有 'and' 的右侧缺失,因为这是关于 3 位数限制的约束)

create table produit (
  NP number(5),
  poids decimal (5,3),
  constraint PK_produit primary key (NP),
  constraint ck_produit_poids check (poids >= 0 and )
);

这是你想要的吗?

 constraint ck_produit_poids check 
     (poids 
  >= 0 and
  length(Substr(poids,INSTR(poids, '.' )+1,
    length(poids) )<=3