oracle级联删除

时间:2021-07-11 15:29:21

oracle级联删除可以使用触发器来实现,但是比较麻烦,最简单的就是直接建立表的主外键关系,给列设置级联删除。

------创建了CLASS表,并设置ID字段为主键。

 -- Create table
create table CLASS
(
ID VARCHAR2(2) not null,
CLASS_NAME VARCHAR2(20)
)
alter table CLASS
add constraint PK_CLASS primary key (ID)

------创建了STUDENTS表,并设置ID字段为主键,CLASS_ID为外键且有级联删除。

 -- Create table
create table STUDENTS
(
ID VARCHAR2(4) not null,
CLASS_ID VARCHAR2(2) not null,
STU_NAME VARCHAR2(20),
STU_AGE NUMBER
) alter table STUDENTS
add constraint PK_STU primary key (ID) alter table STUDENTS
add constraint FK_STU foreign key (CLASS_ID)
references CLASS (ID) on delete cascade;

这样删除了班级ID,所属的学生都会被删除。

------删除主键 原有主键

ALTER TABLE tb_media DROP CONSTRAINT PK_media_user