sql - 如何将十进制数限制为 3 位作为约束检查(SQL)
问题描述
我需要使用约束来检查列值(poids)是否高于 0 并且在“。”之后不超过 3 个 digist。(这是我可能/将要面临的考试问题)
检查 poids 是否高于 0 很容易。
我有 google-it,人们说这在数据库端是不可能的,因为这需要作为格式输出来完成。
decimal(5,3) 将列限制为 3 位,但我们仍然可以输入 3 位以上的数字,这是我不想要的
这就是我到目前为止所拥有的(仅缺少“和”的右侧,因为这是关于 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
推荐阅读
- python - 当 python-vlc 播放一些 HTTP 流时,get_time 不会按预期工作
- c - 三元算子交互的多个部分
- python - 比较两个列表以返回一个列表,其中所有元素都为 0,除了在保持索引时匹配的元素?
- node.js - 在 React 上使用来自 Youtube v3 API 的 maxResults
- openssl - 在不访问 PK 的情况下生成签名的 PKCS#7
- python - sort_values() 得到了一个意外的关键字参数“by”
- processing - 如何用某种颜色填充矩形并在处理控制台中打印字符串?
- windows - 一些链接是指本地主机,但主机文件很好
- android - 为小米米 a1 从源代码构建沿袭 15.1 时获取“无效参数名称”
- mysql - SQL select id where id is not in a entry with multiple id in another table