我正在尝试执行一个简单的规则来插入bank_account列的值:
- bank account can consist of only digits
- bank account can have one hyphen '-' or zero hyphens
- bank account can have one slash '/' or zero slashes
我有此检查约束:
alter table someTable
add constraint chk_bank check
(
(bank_account not like '%-%-%')
and
(bank_account not like '%/%/%')
and
(bank_account not like '%[^0123456789\-/]%')
)
而且我有这些银行帐号(它们是虚构的:]:>
12-4414424434/0987 987654321/9999 NULL 41-101010101010/0011 500501502503/7410 NULL 60-6000070000/1234 7987-42516/7845 NULL 12-12121212/2121
启用约束时出现此错误:
The ALTER TABLE statement conflicted with the CHECK constraint "chk_bank". The conflict occurred in database "x", table "someTable", column 'bank_account'.
我尝试了一些选择查询,但找不到正确的数字。
我的检查约束写错了吗?如果是这样,我应该如何更改它以满足我的要求?检查约束会忽略NULL值还是这些问题?
我正在尝试执行一个简单的规则来插入bank_account列的值:-银行帐户只能包含数字-银行帐户可以有一个连字符'-'或零个连字符-银行帐户...