truncate table(截断表)
truncate table(截断表) 是清空一个表,是一个DDL语言,效率高,它与delete有如下区别。
delete是DML语言;
delete时会触发与表相关的触发器,而truncate不会;
delete可以有删除条件,truncate没有。
在Oracle中如果删除了表中的某一条数据,还可以通过回滚操作(rollback)进行回滚,假如想清空一张表的数据,但是又不想使其能进行回滚操作,就可以立刻释放资源,这时就需要使用截断表了。它的主要功能就是彻底删除数据,使其不能进行回滚。这里我打个比方大家就立刻能明了它的作用。大家众所周知,当我们在自己的PC(person computer)上删除某一个文件,它并没有彻底删除而是进入了回收站,你要在回收站中再将其删除才算彻底清除。截断表就相当于直接将数据从pc上删除,而不会放入回收站。
截断表格式:
truncate table 表名。
假如我们创建了一个tb_AW表
create tabletb_AW(
name varchar(10),
sex varchar(2) default ‘女’
);
插入数据
insert into tb_AW(name,sex) values(‘Joe’,‘男’);
insert into tb_AW(name,sex) values(‘周欣红’,‘女’);
查看表:
select *from tb_AW;
现在进行截断
truncate table tb_AW;;
为了确定表格是否已释放,我们回滚查看下
rollback;
输出结果:
注意这里回滚后,无法查到tb_AW表中的信息了,说明它已经彻底删除了,这就是截断表的功能。
虽然我们在操作中不会经常使用,但作为一个小知识点,可以去了解下。
truncate table(截断表)相关推荐
- Truncate Table 删除表内容避免产生过多日志
数据库每天在进行频繁操作和记录,LOG文件会特别大且增长的比较快,有时候一天就5000M,每天删除一次也很不方便.有没有方法能避免生成日志或不产生日志呢?不产生日志的方法目前我还没找到,但我们在平常的 ...
- mysql 批量 truncate table 指定表数据
执行下面sql语句,将结果集复制出来,然后批量执行 SELECT CONCAT("truncate table ",a.table_name,";") FROM ...
- Oracle删除表数据TRUNCATE TABLE 命令
本文导读:删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作.TRUNCATE TABLE 与没有 WHERE 子句的 ...
- Truncate Table用法
[转自]http://baike.baidu.com/view/1230585.htm Truncate是SQL中的一个删除数据表内容的语句,用法是: 语法 TRUNCATE TABLE name 参 ...
- truncate table 用法
TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作. 语法 TRUNCATE TABLE name 参数 name 是要截断的表的名称或要删除其全部行的表的名称. 注释 TRUNC ...
- 删除数据(DELETE、TRUNCATE TABLE)
1. DELETE 语句的作用是在指定表或指定视图的基表中删除记录行.用户可以删除位于用户自己模式中的表的记录行,也可以删除在该表上具有 DELETE 权限的表的记录行,并且在删除指定表的记录行时, ...
- mysql truncate table导致事务执行失败There is no active transaction
2022年7月25日10:59:44 开发环境 php8 laravel8 mysql8在做一个动态文件管理的时候,发现如果我每次需要清空某个表的时候,在事务里面truncate table会触发 T ...
- SQL中truncate table和delete的区别
truncate table table_namedelete from table_namedrop table table_name truncate table在功能上与不带where子句的de ...
- drop table 和 truncate table的区别
DROP TABLE 和 TRUNCATE TABLE 都是用来删除表的操作,但是它们的区别在于: DROP TABLE 是将整个表从数据库中删除,不可恢复. TRUNCATE TABLE 删除表中的 ...
- MySql清空表的方法介绍 : truncate table 表名
清空某个mysql表中所有内容 delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate tabl ...
最新文章
- 第十五届全国大学生智能汽车竞赛各分赛区成绩汇总
- Linux系统下用python写程序,用Python写个Linux系统命令
- 阐述Linux动态库的显式调用
- java scavenge_请概述一下Java中都有哪些垃圾收集器
- select * 排除字段_编写 SQL 的排除联接
- 操作系统—进程同步与互斥问题之生产者消费者问题,附赠PV操作题解题思路(思维导图版)
- [debug] 延长Linux中sudo密码在终端的有效时间
- screen乱码问题
- configure: The C compiler (located as /usr/bin/gcc) does not seem to be the required gcc compiler.
- JavaScript高级知识总结(高级篇)
- 40163 php,【PHP】微信支付JsApi 40163错误,_PHP_ 少侠科技
- vue子父组件之间的传值
- 一个懒鬼胡乱写的多解
- HDU4730 We Love MOE Girls
- dojo 框架实战笔记
- ERROR: pip‘s dependency resolver does not currently take into account all the packages that are ....
- (深度学习评估指标)——MS COCO detection evaluation metrics
- 阿里云的短信服务acsClient+java
- ncre计算机职业英语,NCRE计算机职业英语一级考试样卷.doc
- ITIL: 事件管理流程 问题管理流程