Oracle SQL – 可以在检查约束中使用CASE来确定数据属性吗?
发布时间:2020-12-12 12:47:57 所属栏目:百科 来源:网络整理
导读:我正在使用Oracle 10g,我想将约束应用于一个表,其中为一列输入的值确定另一列是IS NULL还是IS NOT NULL. Column1只能包含1或0; Column2是VARCHAR2(255). 我知道以下工作: CONSTRAINT ck_1 CHECK ((col1=1 AND col2 IS NOT NULL) OR (col1=0 AND col2 IS NUL
我正在使用Oracle 10g,我想将约束应用于一个表,其中为一列输入的值确定另一列是IS NULL还是IS NOT NULL. Column1只能包含1或0; Column2是VARCHAR2(255).
我知道以下工作: CONSTRAINT ck_1 CHECK ((col1=1 AND col2 IS NOT NULL) OR (col1=0 AND col2 IS NULL)); 但是,我想知道是否可以使用CASE来执行此约束并在col2上设置属性NOT NULL,或者CASE是否只能用于定义值?也许像这样的工作: CONSTRAINT ck_1 CHECK (CASE WHEN col1=1 THEN col2 IS NOT NULL ELSE col2 IS NULL END); 解决方法由于CASE表达式必须返回一个值,并且检查约束是布尔值,因此您必须将结果与某些内容进行比较,例如:CONSTRAINT ck_1 CHECK (CASE WHEN col2 IS NOT NULL THEN 1 ELSE 0 END = col1); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- C#单例模式(Singleton Pattern)实例教程
- 不会点SQLite,都不好意思说自己是开发的
- Sqlite3 .net操作以及编码示例
- ruby-on-rails – Rails – 混合’发送’和’尝试
- Ajax 提交 form ENCTYPE="multipart/form-da
- cocos2dx ver3.3 的Sprite3DTest 例子中可以学到
- oracle删除表空间后对应dbf文件没有删除
- ruby-on-rails – 如何使用脚手架创建多个关系?
- iphone – 来自nsstring的ios UTF8编码
- ruby-on-rails – 如何获取options_from_collect
热点阅读