SQL> create table Student(
2 Sno char(9),
3 Sname char(20) not null,
4 Ssex char(2),
5 Sage smallint,
6 Sdept char(20),
7 PRIMARY KEY(Sno)
8 );表已创建。SQL> create table Course(
2 Cno char(4) primary key,
3 Cname char(12),
4 Ccredit NUMBER(2,1)
5 );表已创建。
SQL> create table sc(
2 sno char (9) not null,
3 cno char (4) not null,
4 grade smallint,
5 primary key( sno,cno),
6 foreign key(sno) references student(sno) on update cascade,
7 foreign key(cno) references course(cno) on delete no action
8 );
foreign key(sno) references student(sno) on update cascade,
*
第 6 行出现错误:
ORA-00905: 缺失关键字
2 Sno char(9),
3 Sname char(20) not null,
4 Ssex char(2),
5 Sage smallint,
6 Sdept char(20),
7 PRIMARY KEY(Sno)
8 );表已创建。SQL> create table Course(
2 Cno char(4) primary key,
3 Cname char(12),
4 Ccredit NUMBER(2,1)
5 );表已创建。
SQL> create table sc(
2 sno char (9) not null,
3 cno char (4) not null,
4 grade smallint,
5 primary key( sno,cno),
6 foreign key(sno) references student(sno) on update cascade,
7 foreign key(cno) references course(cno) on delete no action
8 );
foreign key(sno) references student(sno) on update cascade,
*
第 6 行出现错误:
ORA-00905: 缺失关键字
2 sno char (9) not null,
3 cno char (4) not null,
4 grade smallint,
5 primary key( sno,cno),
7 foreign key(cno) references course(cno) on delete no action
8 );
这里不能要 foreign key(sno) references student(sno) on update cascade,这句,因为oracle在检查级联更新时,由于处理方式与其他数据库不通,所以这里会造成外键约束不一致,因此处理这个,只能用触发器或者其他手段来实现。这里只能级联删除,不能级联更新。