Sql 如何创建触发器来验证Varchar是否包含3个子字符串

Sql 如何创建触发器来验证Varchar是否包含3个子字符串,sql,oracle,Sql,Oracle,我是Oracle新手,我正在尝试创建一个触发器,告诉我Varchar是否至少包含我需要的3个子字符串中的一个子字符串。如果可以使用检查约束,为什么要使用触发器 alter table t add constraint chk_table_col check (col like '%ABC%' or col like '%DEF%' or col like '%GHI%'); 当您可以只使用检查约束时,为什么要使用触发器 alter table t add con

我是Oracle新手,我正在尝试创建一个触发器,告诉我Varchar是否至少包含我需要的3个子字符串中的一个子字符串。

如果可以使用检查约束,为什么要使用触发器

alter table t
    add constraint chk_table_col
        check (col like '%ABC%' or col like '%DEF%' or col like '%GHI%');

当您可以只使用检查约束时,为什么要使用触发器

alter table t
    add constraint chk_table_col
        check (col like '%ABC%' or col like '%DEF%' or col like '%GHI%');

谢谢你的帮助。@Abde-Gordon的问题是:你为什么会想到触发器?你在上课吗?这是家庭作业吗?如果是针对实际(现实)工作,请花些时间考虑一下。几乎总是应该通过添加检查约束而不是触发器来强制执行约束。而且,当你在这里问一个问题时,要问最初的问题(我如何执行规则…)-而不是你对如何解决它的想法(触发器)。看,这实际上是一个大学项目,他们给我们的数据毫无用处,他们只是举了个例子,没有解释。再次感谢你的建议。谢谢你的帮助。@Abde-Gordon的问题是:你为什么要考虑触发器?你在上课吗?这是家庭作业吗?如果是针对实际(现实)工作,请花些时间考虑一下。几乎总是应该通过添加检查约束而不是触发器来强制执行约束。而且,当你在这里问一个问题时,要问最初的问题(我如何执行规则…)-而不是你对如何解决它的想法(触发器)。看,这实际上是一个大学项目,他们给我们的数据是非常无用的,他们只是举了一个例子,没有解释。再次感谢你的建议。