这里,我跟你写个例子,你看看吧。
创建一个班级表:
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 也不能随便修改或者删除, 因为如果修改了,学生表就没有数据参照了。