首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL检查约束-如何检查特定格式?

SQL检查约束-如何检查特定格式?
EN

Stack Overflow用户
提问于 2015-06-17 20:21:40
回答 3查看 2.1K关注 0票数 0

我正在尝试为我的列添加一个检查约束,以获取足球比赛的比分。格式必须是这样的--> 4-2 (使用连字符),而且两个数字都不能超过999。

下面是我到目前为止所拥有的,显然不是work..Any的想法?列数据类型为VARCHAR(7)

代码语言:javascript
复制
Constraint ScoreCheck CHECK(Score LIKE '0-999'-'0-999'); 
EN

回答 3

Stack Overflow用户

发布于 2015-06-17 20:32:41

正确的方法是使用视图或虚拟列。虚拟列从11g开始可用。只需在表中定义虚拟列,例如:

代码语言:javascript
复制
create table  . . . 
    WinningScore int,
    LosingScore int,
    GameScore as (WinningScore || '-' || LosingScore)
)

(您还可以对现有表使用alter table。)

Here有点像虚拟列的入门读物。

票数 2
EN

Stack Overflow用户

发布于 2015-06-17 20:33:53

您应该使用REGEXP_LIKE,而不是像这样

分数约束检查(

(REGEXP_LIKE,'^0-9{1,3}-0-9{1,3}$');

此外,为了进一步使用,您应该将此字段拆分为主队得分和客队得分,并将其存储为整数,以便处理它们

票数 1
EN

Stack Overflow用户

发布于 2015-06-17 20:30:22

这可以使用正则表达式来完成:

代码语言:javascript
复制
Constraint ScoreCheck CHECK(regexp_like(Score, '^[0-9]{1,3}-[0-9]{1,3}$'))
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30891475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档