外键默认的作用有两点:一个对父表,一个对子表(外键字段所在的表)
对子表约束:子表数据进行写操作(增和改)的时候,如果对应的外键字段在父表找不到对应的匹配,那么操作会失败(约束子表数据操作).
对父表约束:父表数据进行写操作(删和改:都必须涉及到主键本身),如果对应的主键在子表已经被数据引用,那么就不被允许操作.-- 插入数据:外键字段在父表中不存在insertinto my_foreign2 values(null,'张自忠',4);-- 没有4班级insertinto my_foreign2 values(null,'项羽',1);insertinto my_foreign2 values(null,'刘邦',2);insertinto my_foreign2 values(null,'韩信',2);-- 更新父表记录update my_class set id =4where id =1;-- 失败: id=1记录已经被学生引用update my_class set id =4where id =3;-- 可以: 没有引用