[英]oracle compound Check constraint
假设我想在表列中仅允许以数字开头且不应包含“ $”的字符串。 此表的检查约束将如何显示?
假设使用Oracle 10g +,则可以在CHECK约束中使用Oracle的正则表达式功能:
ALTER TABLE YOUR_TABLE
ADD CONSTRAINT col_regx CHECK REGEXP_LIKE(column_name,'^[[:digit:]]{1}[^$]*$'));
听起来您需要使用Oracle的正则表达式。 可以在下面找到相应IF约束的语法要求的有用链接
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm
正则表达式看起来像^\\d[^$]*$
我不知道甲骨文是否会原谅我,如果这对您没有帮助。
我会做类似的事情
ALTER TABLE YOUR_TABLE ADD CONSTRAINT col_regx CHECK(substr(column_name,1,1)在'0'和'9'之间,而column_name不像'%$%')
(未经测试,但可能比正则表达式更快)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.