十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
. cascade方式
成都创新互联主营容城网站建设的网络公司,主营网站建设方案,app开发定制,容城h5小程序定制开发搭建,容城网站营销推广欢迎容城等地区企业咨询
在父表上update/delete记录时,同步update/delete掉子表的匹配记录
. set null方式
在父表上update/delete记录时,将子表上匹配记录的列设为null
要注意子表的外键列不能为not null
. No action方式
如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作
. Restrict方式
同no action, 都是立即检查外键约束
. Set default方式
父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别
1、创建测试表,
create table test_update_cols(id int,value varchar(20));
2、插入测试数据;
insert into test_update_cols values (1,'v1');
insert into test_update_cols values (2,'v2');
insert into test_update_cols values (3,'v3');
insert into test_update_cols values (4,'v4');
3、查询表中全量数据;select t.* from test_update_cols t;
4、编写语句,同时更新id和value两个字段;
update test_update_cols set id = id+100, value = concat(value,'00');
5、编写语句,重新查询数据,可以发现两个字段已经被更新;select t.* from test_update_cols t;
定义一个查找父表最大ID的方法.
执行插入父表数据后,调用该方法得到ID,因为插入数据后得到的最大ID应该就是刚保存的
然后将ID保存在子表中 当然保存父表和子表在一个方法内执行
大概思路如下
public void test (参数){
/执行插入父表--》得到最大ID--》保存子表
}