如何将十进制数限制为 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
我需要使用约束来检查列值 (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