繁体   English   中英

oracle复合检查约束

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM