一个表:
create table course (
cno char(4) primary key,
cname char(40),
cpno char(4),
ccredit smallint,
foreign key (cpno) references course(cno)
);
insert into course values ('1','数据库','5',4);这样插入数据对吗?不对的话怎么插入?

解决方案 »

  1.   

    有一个foreign key的限制,就是cpno这个字段插入的值'5'必须保证该表存在以cno字段为'5'的记录。
    要么该列为空insert into course values ('1','数据库', null, 4);是可以的
      

  2.   

    foreign key (cpno) references course(cno) 
    外键有没有?没有就插不进
    或者'1'已经存在
      

  3.   

    你把cpno设成了外键,cpno指向了cno,cno这列里面没有的值当让不会让你插入。外键中的值必须是其所指向的键中已经存在的值。
    insert into course values ('1','数据库','1',4);
    这样就可以插入了。
    另外这个问题似乎不应该在Java版问吧
      

  4.   

    好久没有学习sql了
      呵呵 
       寒假回家学