清除oracl中有主外键关联的表中的部分数据。

1.禁用主外键
BEGIN
for c in (select ‘ALTER TABLE ‘||TABLE_NAME||‘ DISABLE CONSTRAINT ‘||constraint_name||‘ ‘ as v_sql from user_constraints where CONSTRAINT_TYPE=‘R‘) loop
EXECUTE IMMEDIATE c.v_sql;
end loop;
end;
2.清空数据源。清空所有数据。一般情况是对表进行条件删除。
begin
for ec in
(select table_name from user_tables)
loop
execute immediate ‘delete ‘|| ec.table_name;
end loop;
end;
commit;
3.启动主外键:
BEGIN
for c in (select ‘ALTER TABLE ‘||TABLE_NAME||‘ ENABLE CONSTRAINT ‘||constraint_name||‘ ‘ as v_sql from user_constraints where CONSTRAINT_TYPE=‘R‘) loop
EXECUTE IMMEDIATE c.v_sql;
end loop;
end;
4.启动失败,有时候因为删除了父级数据而子级没删,看数据库报错信息,一步一步往下找,从下到上把子数据删除。
5.再次启动主外键。

清除oracl中有主外键关联的表中的部分数据。,布布扣,bubuko.com

时间: 2024-10-12 08:06:16

清除oracl中有主外键关联的表中的部分数据。的相关文章

sql 数据库查看主外键关联

SELECT 主键列ID=b.rkey ,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid) ,外键表ID=b.fkeyid ,外键表名称=object_name(b.fkeyid) ,外键列ID=b.fkey ,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) ,级联更新=ObjectProperty(a.id,'Cn

Oracle 查询主外键关联

一 :在系统表中查询该表的约束键名称 select * from user_constraints where table_name = 'TB_INFOSTAT_TRAINCONFERENCE' 二:在系统表中查询该约束的关联表和关联字段select b.table_name,b.column_name from user_constraints a inner join user_cons_columns bon a.constraint_name = b.constraint_namewh

Oracle数据库中,知道一张表,查询与其有主外键关系的表

--查外键表NC56.CSCI有无对应的主键表 SELECT a.owner, A.TABLE_NAME primary_table_name, A.CONSTRAINT_NAME primary_table_key_name, b.owner, B.TABLE_NAME foreign_table_name, B.CONSTRAINT_NAME foreign_table_foreign_key_name, B.STATUS foreign_table_foreign_key_stat FRO

通过触发器实现两张有主外键关系的表的数据插入问题

表:T_USERS,T_USER_EXCEPT_WORK,其中T_USERS中的主键ID和T_USER_EXCEPT_WORK中的外键都为数列SEQUENCE_USERS.Currval的自增长数列. 更通俗的讲就是:在T_USERS表中插入一条数据,通过触发器在T_USER_EXCEPT_WORK插入一条相关的数据. 注意: 序列有以下两个属性 CURRVAL: 返回序列当前值: NEXTVAL:返回当前序列值增加一个步长后的值. 只有在发出至少一个NEXTVAL之后才可以使用CURRVAL属

mysql清空有外键关联的表

第一种:(不要外键约束) 手动删除外键约束: 删除表数据 第二种:(保留外键约束) SET FOREIGN_KEY_CHECKS = 0;   TRUNCATE TABLE 表名;  SET FOREIGN_KEY_CHECKS = 1; ---------------------------------------------------------------------------------------- TRUNCATE     清空数据  (还原主键,自增的ID会重新从1开始) DE

Entity Framework Code First主外键关系映射约定

本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个不同表之间可以存在外键依赖关系,一个表自身也可以有自反关系(表中的一个字段引用主键,从而也是外键字段). Entity Framework Code First默认多重关系的一些约定规则: 一对多关系:两个类中分别包含一个引用和一个集合属性,也可以是一个类包含另一个类的引用属性,或一个类包含另一个类

数据库的SQL语句创建和主外键删除操作

1 create table UserType 2 3 ( 4 5 Id int primary key identity(1,1), Name nvarchar(25) not null 6 7 ) go 1 create table UserInfo 2 3 ( 4 5 Id int primary key identity(1,1), LoginPwd varchar(50) not null, LoginName varchar(50) not null, Name varchar(25

存在外键关联的主表truncate如何做

主外键是数据库提供的一种两表之间强制关联的方法,也可以从应用层实现. 优点 缺点 数据库实现的主外键 由数据库层机制保证,无需应用额外实现 强关联,不易扩展变更 应用实现的主外键 易扩展变更 完全由应用控制,要求较高 我认为需要根据实际情况进行取舍,例如表不复杂,可以由应用实现,若表之间关联较多且复杂,那么交由数据库处理,至少保证不会错. 存在主外键关联的主表,由于存在外键关联关系,因此有些操作就会禁止,例如truncate. 实验 1. 创建测试表 SQL> create table tbl_

C# 如何物理删除有主外键约束的记录?存储过程实现

十年河东,十年河西,莫欺少年穷 本篇主旨是如何物理删除有主外键约束的记录!那么,我们从主外键走起! 下面新建三张有主外键约束的表,分别为:系/学院表,专业班表,学生表,如下: CREATE TABLE Dept--系/学院表 ( DeptId int identity(1,1) primary key, DeptName nvarchar(50),--系名称 AddTime datetime default(getdate()) ) CREATE TABLE Grade--班级表 ( Grade