PL/SQL数据库一个表中一个字段设为外键引用另一个表中的主键字段,用语句怎么写

加我朋友的QQ:815479501,以后细聊,经常一起学习!

这里,我跟你写个例子,你看看吧。
创建一个班级表:
CREATE TABLE ban_ji( id integer , ban_ji varchar(25));

INSERT INTO ban_ji VALUES(1,'1-(1)');

INSERT INTO ban_ji VALUES(2,'1-(2)');

----------------------------------------------

insert into xue_sheng values(5,'dd',0,50,3);

现在在学生表插入数据,如果不对应 班级表的id也是可以插入的,不过这是没有意义的记录

ALTER TABLE xue_sheng ADD CONSTRAINT fk_xue_sheng FOREIGN KEY(b_id) REFERENCES ban_ji(id);
ERROR at line 1:
ORA-02270: no matching unique or primary key for this column-list

错误提示要 班级表的id必须是主键或者具有唯一值
SQL> ALTER TABLE ban_ji ADD CONSTRAINT pk_ban_ji PRIMARY KEY( id );

SQL> ALTER TABLE xue_sheng ADD CONSTRAINT fk_xue_sheng FOREIGN KEY(b_id) REFERENCES ban_ji(id);
一旦创建了这个外键, 就不能在学生表随意插入数据,要参照班级表的id 。
insert into xue_sheng values(5,'dd',0,50,3);

还有班级表的id 也不能随便修改或者删除, 因为如果修改了,学生表就没有数据参照了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-02
参考资料 为 Oracle 外键约束 的创建的例子

参考资料:http://hi.baidu.com/wangzhiqing999/blog/item/6a79e3f4e10911bda40f52e8.html

相似回答