网络子表自动设置为空;当父表值删除;删除 网络释义
在实际数据库设计中,ON DELETE SET NULL和ON UPDATE CASCADE通常用于那些具有父子关系的表之间。例如,在一个订单管理系统中,订单表可能有一个外键引用客户表的主键。在这种情况下,如果某个客户被删除(例如,客户不再与公司合作),我们可能希望保留与该客户相关的订单记录,但将订单表中的客户ID设置为NULL,以表示该订单...
ON DELETE SET NULL选项表示在父表中删除一条记录时,与之相关的子表中的外键值会被设置为NULL。这意味着删除父表中的记录后,子表中的外键值将被置空,而不是自动删除相关记录。这种情况下需要注意子表外键字段允许为NULL,否则会违反外键约束。 总的来说,CASCADE会自动删除相关记录,而ON DELETE SET NULL只会将...
on delete set null: 外键指向记录被删除时设置受影响记录外键字段为空。 altertableemp addconstraintfk_emp_deptforeignkey(dept)referencesdept(deptno)ondeletesetnull; 删除dept的记录时emp中参照这条数据的两条数据的dept的值被自动赋空。
on delete set null,顾名思义,这种方式建立的外键约束,当被参照的数据被删除是,参照该数据的那些数据的对应值将会变为空值,下面我们通过试验来证明on delete set null作用: 首先恢复刚才的那几条数据,然后更改约束: alter table emp add constraint fk_emp_dept foreign key(dept) references dept(deptno) on ...
先看On Delete属性,可能取值如上图为:No Action, Cascade,Set Null, Restrict属性。 当取值为No Action或者Restrict时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。 当取值为Cascade时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应...
对于2,需要使用on delete set null建立外键约束。实验: create table dept_test (deptno number(10) not null, deptname varchar2(30) not null, constraint pk_dept_test primary key(deptno)); create table emp_test (empno number(10) not null, fname varchar2(20) , lname varchar2(20) , dept ...
在上述示例中,ParentEntity和ChildEntity是两个实体类,它们之间存在一对一的关系。通过在ParentEntity的child属性上使用@JoinColumn注解,设置nullable属性为true,并且设置onDelete属性为ReferentialAction.SET_NULL,即可将操作"on delete set null"设置为外键。
使用on delete cascade和on delete set null来建立外键 alter table emp add constraint fk_emp_dept foreign key(dept) references dept(deptno) on delete set null;然后我们在执行删除操作:delete from dept where deptno = 1;