sql - 在 oracle 的列中添加分数约束

标签 sql oracle constraints

我正在使用 oracle 10gr2。我正在尝试对名为“score”的列实现约束,以便只能输入分数。

更具体地说,格式应包含一个数字的分子和一个数字的分母,这样用户只能输入一个分数,例如 3/4,2/57/8。该列仅接受数字作为输入。谁能告诉我要使用的 SQL 吗?

最佳答案

如果我理解正确,我认为正确的方法是将数据存储在两列中。如果最高数字是用户在问题上的实际分数,而最低数字是可能的分数,这尤其有意义,这听起来就像你正在做的那样。这将使您能够使用 Oracle 中的内置数字函数而不是解析字符串来总结分数。然后,您使用类型 NUMBER(1,0) 将每列的大小限制为 (0-9)。例如:

alter table table_name add (
    column possible number(1,0),
    column actual number(1,0)
);

如果分数列中已有数据,则将值从那里复制到新列。最后,删除该列。

alter table table_name drop score;

另外,我会搜索“Oracle 小于约束”,因为您可能不希望实际分数超过可能,并且可能会执行类似的约束以使可能的分数大于零。

关于sql - 在 oracle 的列中添加分数约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585127/

相关文章:

mysql - 按日期统计注册人数

SQL UPDATE 命令的工作原理

mysql - 使用 3 个连接表进行 SQL 排序

sql - Django与select_related的反向关系

database - DB2 和 Oracle 之间的差异

c - sqlcxt() 中的段错误

ios - 针对 iPhone 中的不同屏幕改变 UITextFields 的高度和间距

sql - Oracle DB SQL - 检查每个月是否至少存在一个数据集

algorithm - session session 调度算法

mysql - 无法创建约束键