bla*_*kem 3 sql oracle constraints
我正在使用oracle 10gr2.我试图对名为"得分"的列强制执行约束,以便只能输入分数.
更具体地,格式应包含在分子中一个数字,并在分母一个数位,使得用户只能输入一个分数例如3/4
,2/5
,或7/8
.该列仅接受数字作为输入.谁能告诉我使用的SQL?
如果我理解正确,我认为正确的方法是将数据存储在两列中.如果最高号码是用户在问题上的实际得分而且最低号码是可能得分,这尤其有意义,这听起来就像你正在做的那样.这将使您能够使用Oracle中的内置数字函数来总结分数,而不是解析字符串.然后,使用类型将每列的大小限制为(0-9)NUMBER(1,0)
.例如:
alter table table_name add (
column possible number(1,0),
column actual number(1,0)
);
Run Code Online (Sandbox Code Playgroud)
如果您已在分数列中包含数据,则可以将值从那里复制到新列.最后,删除该列.
alter table table_name drop score;
Run Code Online (Sandbox Code Playgroud)
此外,我会搜索"Oracle小于约束",因为您可能不希望实际分数超过可能的分数,并且可能会执行类似的约束以使可能分数大于零.
归档时间: |
|
查看次数: |
1023 次 |
最近记录: |