PL/SQL数据库一个表中一个字段设为外键引用另一个表中的主键字段,用语句怎么写
2个回答
展开全部
这里,我跟你写个例子,你看看吧。
创建一个班级表:
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 也不能随便修改或者删除, 因为如果修改了,学生表就没有数据参照了。
创建一个班级表:
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 也不能随便修改或者删除, 因为如果修改了,学生表就没有数据参照了。
展开全部
参考资料 为 Oracle 外键约束 的创建的例子
参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/6a79e3f4e10911bda40f52e8.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询