有主从表|主外键关系时删除表和删除数据

有主从表关系的两张表

--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
)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值