创建检查约束Oracle
我试图创建一个检查约束,该约束在两列之间强制执行一个规则,但出现以下错误: ORA-00920:无效的关系运算符 我看不出我的语句中哪个关系运算符是错的。需要帮忙吗创建检查约束Oracle,oracle,constraints,Oracle,Constraints,我试图创建一个检查约束,该约束在两列之间强制执行一个规则,但出现以下错误: ORA-00920:无效的关系运算符 我看不出我的语句中哪个关系运算符是错的。需要帮忙吗 alter table "TRANSACTION" add constraint "CHECK_TRANSACTIONREFERENCE" check ("REFERENCE" case when TRANSACTION_MEAN=2 then (case when 'Reference' is no
alter table "TRANSACTION" add constraint "CHECK_TRANSACTIONREFERENCE" check
("REFERENCE" case when TRANSACTION_MEAN=2 then
(case when 'Reference' is not null then 1 else 0 end)
else
1
end = 1)
看起来您想要执行的业务规则是 如果事务平均值等于
2
那么,为什么不编写代码呢
alter table "TRANSACTION"
add constraint "CHECK_TRANSACTIONREFERENCE"
check (
( TRANSACTION_MEAN = 2 and Reference is not null)
or TRANSACTION_MEAN != 2)
/
看起来还可以,但我认为“Reference”应该替换为“Reference”。我用“Reference”进行了检查,但仍然是相同的错误。你想表达什么?什么是
参考
?是列名吗?第一部分“REFERENCE”case…
的语法无效。不知道你想做什么。此外,“Reference”不为null时,的大小写将始终计算为true,因为您正在检查字符串literal“Reference”
。