Sql 创建触发器
我只是想知道是否有人能帮我开始创建一个Sql 创建触发器,sql,oracle,triggers,Sql,Oracle,Triggers,我只是想知道是否有人能帮我开始创建一个触发器 我需要创建一个触发器来检查INSERT语句中的某些字符 例如: 我想检查插入值是否有A、B、C 任何帮助都会很棒。 谢谢 这将在插入前触发,检查值“ABC”。如果希望在插入后触发它,请进行适当的更改。我们假设表table有一个名为value的字段 这将在插入前触发,检查值“ABC”。如果希望在插入后触发它,请进行适当的更改。我们假设表table有一个名为value的字段,请检查是否创建触发器,或者重试。要检查是否包含某些子字符串,请尝试该函数。检查是
触发器
我需要创建一个触发器来检查INSERT
语句中的某些字符
例如:
我想检查插入值是否有A、B、C
任何帮助都会很棒。
谢谢
这将在插入前触发,检查值“ABC”。如果希望在插入后触发它,请进行适当的更改。我们假设表table
有一个名为value
的字段
这将在插入前触发,检查值“ABC”。如果希望在插入后触发它,请进行适当的更改。我们假设表table
有一个名为value
的字段,请检查是否创建触发器,或者重试。要检查是否包含某些子字符串,请尝试该函数。检查是否创建触发器,或者尝试。要检查是否包含某些子字符串,请尝试使用该函数。最好的方法是使用检查约束,因为它是性能最好、最简单、正确的方法
对于您的原始示例,可能如下所示:
alter table t1
add constraint t1_col1_ck check ( col1 = 'ABC')
;
您在注释中给出的示例不起作用,因为您正在将TO_NUMBER函数应用于包含冒号的非数字字符串。是否应该检查日期列的时间元素?如果是这样,这可能会奏效:
alter table t1
add constraint t1_starttime_ck
check ( (start_date - trunc(start_date) < 0.5)
;
alter表t1
添加约束t1\u开始时间\u ck
检查((开始日期-trunc(开始日期)<0.5)
;
确切的细节取决于您想要实施的规则。关键是,完整性规则应该尽可能通过约束而不是触发器来实施,这通常是可能的。最好的方法是使用复选框,因为这是最有效、最简单、最正确的方法火车
对于您的原始示例,可能如下所示:
alter table t1
add constraint t1_col1_ck check ( col1 = 'ABC')
;
您在注释中给出的示例不起作用,因为您正在对包含冒号的非数字字符串应用TO_NUMBER函数。它是否应该检查日期列的时间元素?如果是这样,则可以:
alter table t1
add constraint t1_starttime_ck
check ( (start_date - trunc(start_date) < 0.5)
;
alter表t1
添加约束t1\u开始时间\u ck
检查((开始日期-trunc(开始日期)<0.5)
;
确切的细节取决于您想要强制执行的规则。关键是,完整性规则应尽可能通过约束而不是触发器强制执行,这通常是可能的。您应该从阅读手册开始:。Oracle手册页面包含许多好的示例,让您了解如果值为不正确?如果要防止无效数据进入数据库,最好使用检查
约束。如果要检查某些顺序中的某些字符等,请查看正则表达式:您应该从阅读手册开始:。Oracle手册页面包含了许多好的示例,让您了解应该使用哪些规则如果值不正确,会发生什么情况?如果要防止无效数据进入数据库,最好使用检查约束。如果要检查某些顺序中的某些字符等,请查看正则表达式:谢谢。我已经准备好了..但检查数字时出错..:new.value