oracle check约束

YY_MM_DD 2010-06-18 03:08:22
create table test
(
name varchar2(12),
idType varchar2(20),
idDesc varchar2(100)
)

我有一张这样的表,如果我想通过check约束来实现如果idType='KK',idDesc就不能为空,这个约束怎么写,
很简单,也很急,谢谢!
...全文
114 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
byman0215 2010-06-18
  • 打赏
  • 举报
回复
学习了
Jermaine 2010-06-18
  • 打赏
  • 举报
回复
lingjin520用and很巧妙啊
gelyon 2010-06-18
  • 打赏
  • 举报
回复
学习了
lingjin520 2010-06-18
  • 打赏
  • 举报
回复
create table test2(
name VARCHAR2(12),
idType VARCHAR2(20),
idDesc VARCHAR2(100),
CONSTRAINT test_ck_2 CHECK (
((idType = 'KK') AND (idDesc IS NOT null))
OR idType != 'KK'
)
);
--insert valid data
insert into test2 values ('Tracy','KK','sdf');
1 rows inserted

--insert invalid data
insert into test2 values ('Tracy','KK','');

Error starting at line 1 in command:
insert into test2 values ('Tracy','KK','')
Error report:
SQL Error: ORA-02290: check constraint (GBADMIN.TEST_CK_2) violated
02290. 00000 - "check constraint (%s.%s) violated"
*Cause: The values being inserted do not satisfy the named check

*Action: do not insert values that violate the constraint.
YY_MM_DD 2010-06-18
  • 打赏
  • 举报
回复
没人知道吗???
wuguanlin 2010-06-18
  • 打赏
  • 举报
回复
这个需要使用触发器吧。
单纯的check约束我也不知道怎么实现。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧