create table Game
(Gid char(6) primary key,
Tnumberh varchar(4) not null,
Tnumbera varchar(4) not null,
Rid char(18) not null,
Gcode char(10) not null,
Gdate date,
foreign key (Tnumberh) references Team(Tnumber),
foreign key (Tnumbera) references Team(Tnumber),
foreign key (Rid) references referee(Rid)
);
假设创建这个表,怎么才能使Tnumberh 与Tnumbera的数据不能相同
(Gid char(6) primary key,
Tnumberh varchar(4) not null,
Tnumbera varchar(4) not null,
Rid char(18) not null,
Gcode char(10) not null,
Gdate date,
foreign key (Tnumberh) references Team(Tnumber),
foreign key (Tnumbera) references Team(Tnumber),
foreign key (Rid) references referee(Rid)
);
假设创建这个表,怎么才能使Tnumberh 与Tnumbera的数据不能相同
解决方案 »
- oracle 数据导入 imp错误IMP-00058: IMP-00000: 未成功终止导入 求解
- 误删除基础信息表中的一些数据如何恢复
- 请问高手如何使用单一的游标实现下面的SQL
- Oracle clob问题
- 弱弱的问个SQL时间格式转化的问题
- 问一下ORACLE的自动编号的数据类型问题。。。
- oracle 7.0数据库管理中,丢失了用户名,不能进入,怎么办?
- sqlldr userid=nmc/nmc control=c;\input.txt 为什么无法执行? 在线等
- 请问各位高手应该怎样处理此种情况。多谢了!
- CPU占用率
- 大家新年快乐!急急急.求大神.
- 求201612某部门的上月结存(存休+特休)-本月请假+本月加班=本月结存
insert update时判断两字段值是否相同,相同就提示无法insert,update
alter table game add constraint ck_ha check(Tnumberh <> Tnumbera);
-- 使用 check 约束
SQL>
SQL> create table test(a int, b int);
Table created
SQL> alter table test add constraint chk_a_b check (a<>b);
Table altered
SQL> -- 这条成功
SQL> insert into test values(100,200);
1 row inserted
SQL> -- 这条失败
SQL> insert into test values(100,100);
insert into test values(100,100)
ORA-02290: 违反检查约束条件 (TEST_USER.CHK_A_B)
SQL> col a format a10;
SQL> col b format a10;
SQL> select * from test;
A B
---------- ----------
100 200
SQL> drop table test purge;
Table droppedSQL>
2、触发器限定
3、字段的check约束限定
alter table Game
add constraint CK1
check (Tnumberh !=Tnumbera);
2、CHECK不错
3、触发器效率太低,对这个问题不太适用