GBase8s如何在有外键关系的表中删除数据?

GBase8s如何在有外键关系的表中删除数据?,第1张

有两种方式:

1、先删除外键表中的数据,再删除当前数据

举例:

drop table if exists t1

drop table if exists t2

create table t1(id int primary key , s1 float)

create table t2(id int , id1 int ,s1 float,foreign key(id1) references t1(id) )

insert into t1 values(1,20)

insert into t1 values(2,30)

insert into t2 values(1,1,50)

--如果你直接删除t1的数据,则物塌报错

delete t1

692: Key value for constraint (root.u143_565) is still being referenced.

Error in line 1

Near character position 8

--需要先删除t2表中的数据,才能删除t1表中的数据

delete t2

delete t1

2、可以卖竖通过外键设置级联删除

--在设置外中蚂大键时,设置级联删除

drop table t2

drop table t1

create table t1(id int primary key , s1 float)

create table t2(id int , id1 int ,s1 float,foreign key(id1) references t1(id) on delete cascade)

insert into t1 values(1,20)

insert into t1 values(2,30)

insert into t2 values(1,1,50)

--此时删除t1的数据,则删除t1及t2中数据

>delete t1

2 row(s) deleted.

>select * from t2

idid1s1

No rows found.

SQL和 Oracle外键的相关约束中的级联删除 我们在相关的系统中如果你要删除相关记录 我们就要关联一起删除N多张表 同时它们之间还存在着相互约束的关系 所以考虑到在创建表时加上约束关系

详细内容如下:

SQL的Oracle外键约束可以实现级联删除与级联更新Oracle 则只充许级联删除

SQL级联删除与级联更新使用格式

CREATE TABLE A (ID INT PRIMARY KEY NAME VARCHAR( ))

CREATE TABLE A (ID INT REFERENCES A (ID)ON DELETE CASCADE ON UPDATE CASCADE AGE TINYINT)

Oracle 级联删除使用格式

CREATE TABLE A (ID INT PRIMAY KEY NAME VARCHAR ( ))

CREATE TABLE A (ID INT REFERENCES A (ID)ON DELETE CASCADE AGE NUMBER( ))

CREATE TABLE groups

(

id VARCHAR ( ) CONSTRAINT pk_groupid PRIMARY KEY

name VARCHAR ( )

description VARCHAR ( )

)

TABLESPACE userspace

CREATE TABLE usringrp

(

group_id VARCHAR ( ) CONSTRAINT fk_uing_grpid

REFERENCES groups(id)

ON DELETE CASCADE

user_id VARCHAR ( )

)

TABLESPACE userspace

PowerDesigner

参照完整性约束

限制(Restrict) 不允许进行修改或删除 *** 作 若修改或删除主表敬拍的主键时 如果子表中存在子记录 系统将产生一个错误提示 这是缺省的参照完整性设置

置空(Set Null) 如果Oracle外键列允许为空 若修改或删除主表的主键时 把子表中兄烂参照的外键列设置为空值(NULL)

置为缺省(Set Default) 如果指定了缺省值 若修改或删除主表的主键时 把子表中参照的Oracle外键设置为缺省值(Default)

级联(Cascade) 把主表中主键修改为一个新的值时 相应修改子表中Oracle外键的值羡稿漏 或者删除主表中主键的记录时 要相应删除子表中外键的记录

lishixinzhi/Article/program/Oracle/201311/17613


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11968784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存