任何人都可以解释为什么NOVALIDATE写在那里以及为什么两个“:”和“[]”之间的alpha
ALTER TABLE CUSTOMERS
ADD CONSTRAINT cust_f_name
CHECK(REGEXP_LIKE(cust_first_name,'[[:alpha:]]'))NOVALIDATE ;
以及
是什么REGEXP_LIKE(cust_first_name,'^[0-9]')
和
REGEXP_LIKE(cust_first_name,'^A-Z')
是什么意思?是不允许的数字?
答案 0 :(得分:3)
这些是正则表达式,在Oracle中用作表约束。
[:alpha:]
匹配alpha POSIX类中的任何字符;也就是说,字母字符(a-z和A-Z)。 ^
的上下文中,^[0-9]
表示从字符串的开头看。 [0-9]
是数字类别(即0,1,2,3,4,5,6,7,8和9)^A-Z
表示否定课程A-Z
;所以它会匹配任何不包含大写字母字符的内容。 NOVALIDATE
表示,一旦将约束添加到表CUSTOMERS
,Oracle就不会检查当前条目是否违反约束并仅将其应用于新插入的记录。