有主从表 | 您所在的位置:网站首页 › 数据库如何删除关联表数据记录 › 有主从表 |
有主从表关系的两张表
--delete from 表名 where 条件; 满足条件的删除,如果没有条件,默认删除全部 --删除数据如果当前的表作为主表存在,需要考虑当前要删除的数据是否有被从表引用,如果有 3 中解决方式 -- 默认先删除从表中引用了数据,删除主表的这个数据 -- on delete set null -- on delete cascade --删除表 从表可以直接删除 删除的是主表 --先删除所有的从表,再删除主表 --删除主表的同时删除主从表之间的主外键约束 cascade constraint
--1.删除表时候 --1)默认先删除从表后删除主表 2)执意要删除主表删除主表并同时删除主外键约束 drop table sxt_class cascade constraints; drop table sxt_class cascade constraints; --constraints 是約束條件的意思--2.删除主表中的数据的时候, 删除从表数据可以直接删除 --这个主表数据如果没有被从表中的数据引用,可以直接删除 --这个主表数据如果已经被从表中的数据引用,需要处理 --1) 先删除从表中引用了的数据 再删除主表的这个数据 --2) 添加外键约束的时候 on delete set null,当主表数据被删除时,从表引用这条数据的外键字段值为null 删除时设置字段为空 --3) 添加外键约束的时候 on delete cascade删除主表数据的时候级联删除从表中引用了的这些数据 ,删除时设置整行数据空 create table sxt_student( --主键约束 (非空+唯一) sid number(5) primary key, --非空约束 not null --constraints sname_not_null這是設置如果報錯提示消息會告訴你那個字段錯了,起個別名 sname varchar2(4 char) constraints sname_not_null not null, cid number(5), constraints fk_sxt_class_cid foreign key(cid) references sxt_class(cid) on delete cascade--on delete set null )
|
CopyRight 2018-2019 实验室设备网 版权所有 |