上报学生的两个属性1. 是否团员、2.入团时间两个学生属性相关联

yuhero_bbs 2015-05-07 04:37:04
要上报学生的两个属性1. 是否团员、2.入团时间
数据库对应表STUDENT


STUDENT.MEMBERFLAG NUMBER DEFAULT 0 --代表是否团员标志 0 表示不是团员 1表示是团员
STUDENT.BEMEMBERDATE DATE --入团日期,在MEMBERFLAG为1时需要有入团日期的值

求指导,刚开始学oracle sql
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhero_bbs 2015-05-08
  • 打赏
  • 举报
回复
大家帮忙看下,这样写可以吗? alter table student add memberflag number not null check(memberflag in(0,1)); alter table student add bememberdate date check(memberflag=0 and bememberdate is not null) and (memberflag=0 and bememberdate is null);
yuhero_bbs 2015-05-08
  • 打赏
  • 举报
回复
那这样哪?单独把查询条件列出来: alter table xxzx_student add memberflag number(1) not null default 0; alter table xxzx_student add bememberdate date ; alter table xxzx_student add constraint ck_st_mumberflag check(memberflag in(0,1)) alter table xxzx_student add constraint ck_st_bemumberdate check((MEMBERFLAG=1 and BEMEMBERDATE is not null) or (MEMBERFLAG=0 and BEMEMBERDATE is null));
卖水果的net 2015-05-08
  • 打赏
  • 举报
回复
对列的 check 约束,不能引用其他的列。 你要在你应用程序中想办法。不是 plsql
yuhero_bbs 2015-05-07
  • 打赏
  • 举报
回复
是用pl/sql语言来实现吧。
卖水果的net 2015-05-07
  • 打赏
  • 举报
回复
这个约束,你要通过你的程序来控制,数据库本身不提供这类功能。
yuhero_bbs 2015-05-07
  • 打赏
  • 举报
回复
自己来顶下,不能空着。oracle sql 的简单基础过了一遍,真不知道该怎么实现啊。。。

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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