博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
truncate 命令使用
阅读量:2520 次
发布时间:2019-05-11

本文共 1073 字,大约阅读时间需要 3 分钟。

今天使用truncate清空表时报错了:

SQL> truncate table ref_set;

truncate table ref_set

ORA-02266: 表中的唯一/主键被启用的外键引用

通过dba_constraints查看,该表的主键被其他表所引用,因此无法truncate。即使从表中的数据被清空或者从来没有过数据,也无法直接对被引用的表执行truncate操作。

解决方法:alter table tab_name disable constraint constraint_name;

说明:以前曾经听过关于truncate的限制,但实际工作中由于用的比较少,渐渐忘了。

除了存在外键约束而无法执行truncate外,还应该注意:truncate是ddl操作,如果在执行truncate过程中由其他用户的dml操作没有提交,truncate会触发其提交操作。因此在并发比较高的系统中慎重使用truncate命令。

 

根据表名查询有哪些外键调用了该表中的列:

select a.table_name "被引用表",a.constraint_name "约束名",

b.constraint_name "外键名",b.table_name "引用表" from dba_constraints a,dba_constraints b
where a.constraint_type='P' and a.owner=:COLUMN_NAME
and a.constraint_name=b.r_constraint_name;

以下直接产生禁用约束的语句:

select 'alter table '||b.table_name||'disable constraint '||b.constraint_name

from dba_constraints a,dba_constraints b
where a.constraint_type='P' and a.owner=:COLUMN_NAME
and a.constraint_name=b.r_constraint_name and a.table_name=:table_name;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26451536/viewspace-755444/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26451536/viewspace-755444/

你可能感兴趣的文章
npm 安装 sass=-=-=
查看>>
WINFORM中加入WPF控件并绑定数据源实现跨线程自动更新
查看>>
C#类对象的事件定义
查看>>
各类程序员学习路线图
查看>>
HDU 5510 Bazinga KMP
查看>>
关于select @@IDENTITY的初识
查看>>
ASP.NET MVC ajax提交 防止CSRF攻击
查看>>
关于CSS伪类选择器
查看>>
适用于带文字 和图片的垂直居中方法
查看>>
Part 2 - Fundamentals(4-10)
查看>>
使用Postmark测试后端存储性能
查看>>
NSTextView 文字链接的定制化
查看>>
第五天站立会议内容
查看>>
CentOs7安装rabbitmq
查看>>
(转))iOS App上架AppStore 会遇到的坑
查看>>
解决vmware与主机无法连通的问题
查看>>
做好产品
查看>>
项目管理经验
查看>>
笔记:Hadoop权威指南 第8章 MapReduce 的特性
查看>>
JMeter响应数据出现乱码的处理-三种解决方式
查看>>