假设我想在表格列中只允许以数字开头且不应包含“$”的字符串。这张表上的检查约束是什么样子的?
4 回答
4
假设 Oracle 10g+,您可以在 CHECK 约束中使用 Oracle 的正则表达式功能:
ALTER TABLE YOUR_TABLE
ADD CONSTRAINT col_regx CHECK REGEXP_LIKE(column_name,'^[[:digit:]]{1}[^$]*$'));
参考:
于 2011-04-03T06:01:18.923 回答
1
听起来您需要使用 Oracle 的正则表达式。可以在下面找到相应 IF 约束的语法要求的有用链接
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm
于 2011-04-03T05:56:30.523 回答
0
我会做类似的事情
ALTER TABLE YOUR_TABLE ADD CONSTRAINT col_regx CHECK (substr(column_name,1,1) between '0' and '9' and column_name not like '%$%')
(未经测试,但可能比正则表达式更快)
于 2011-04-04T19:15:53.903 回答
0
正则表达式看起来像^\d[^$]*$
我不了解 Oracle,如果这实际上对您没有帮助,请原谅我。
于 2011-04-03T05:54:06.623 回答