数据的级联删除操作
现在有三张表: GRANDFATHER, FATHER, SON(对,没错,就是爷爷, 父亲和儿子)
- GRANDFATHER : 李一代(id=101);
- FATHER : 李二代1(id=201)和李二代2(id=202);
- SON : 李三代1(id=301), 李三代2(id=302), 李三代3(id=303), 李三代4(id=304).
表之间的关系如下:
现在要求 : 删除表GRANDFATHER中李一代这条数据的时候, 同时将与其相关的表数据也同时删除(即:李二代和李三代等6条数据);
要达到这种目的, 比较常用的方法, 就是级联删除, 但是级联删除的前提是要有主外键关联, 所以就需要为FATHER表和SON表添加外键, 将其关联起来;
1.为FATHER表添加外键, 将其与表GRANDFATHER关联起来;
(将FATHER表的parent_id字段关联到GRANDFATHER表的id字段);
ALTER TABLE FATHER ADD CONSTRAINT FK_FATHER FOREIGN KEY (PARENT_ID) REFERENCES GRANDFATHER(ID) ON DELETE CASCADE;
2.为SON表添加外键, 将其与FATHER表关联起来;
(将SON表的parent_id字段关联到FATHER表的id字段);
ALTER TABLE SON