`

Truncate table,Delete,与Drop table的区别

阅读更多

TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:

   二者均删除表中的全部行。

   但 TRUNCATE TABLE 比 DELETE 速度快且使用的系统和事务日志资源少

 

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。

TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

 

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。

    新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。

 

如果要删除表定义及其数据,请使用 DROP TABLE 语句。

 

对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

TRUNCATE TABLE 不能用于参与了索引视图的表。

---------------------------------
上面是sql联机丛书上说的,似乎很少有书提到truncate table,也似乎很少用到它。今天看到一个问题则正是需要它。


问题:有一个拥有1亿条数据的表,只需要保留其中的5条,其他删除,如何做?

这就需要用truncate table来搞定了,如下:
select 5条数据 into #临时表 from 1亿条数据的牛X表

truncate table 1亿条数据的牛X表
--让它牛X,不到10毫秒干掉它。

insert 1亿条数据的牛X表 select * from #临时表

drop table #临时表
--------------------------------

分享到:
评论

相关推荐

    数据库中truncate,delete,drop语句的比较

    作为初学者,有时容易混淆truncate,delete,drop之间的根本区别,所有今日小记一下。。。

    MySQL删除表操作实现(delete、truncate、drop的区别)

    本文主要讲mysql中三种删除表的操作,delete语句、truncate语句以及drop语句的区别: 简介 delete 1、删除整张表的数据: delete from table_name; 2、删除部分数据,添加where子句: delete from table_name ...

    实例理解SQL中truncate和delete的区别

    本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下 ---创建表Table1 IF OBJECT_ID('Table1','U') IS NOT NULL DROP TABLE Table1 GO CREATE TABLE Table1 (ID INT NOT NULL,...

    delete、truncate、drop的区别以及该如何选择

    前言 上周同事小姐姐问我:“哈哥你看,我发现...咱们常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除;这三种都可以用来删除数据,但场景不同。 一、从执行速度上来说 drop > truncate >> DELETE 二

    PostgreSQL TRUNCATE TABLE

    TRUNCATE TABLE 与 DELETE 具有相同的效果,但是由于它实际上并不扫描表,所以速度更快。 此外,TRUNCATE TABLE 可以立即释放表空间,而不需要后续 VACUUM 操作,这在大型表上非常有用。 PostgreSQL VACUUM 操作用于...

    SQL删除语句DROP、TRUNCATE、 DELETE 的区别

    DROP TABLE test; 删除表test,并释放空间,将test删除的一干二净。 TRUNCATE: TRUNCATE test; 删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在。 DELETE: 1、删除指定数据 删除表test中年龄等于...

    秒懂drop、truncate和delete的区别

    TRUNCATETABLE则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。 (2)表和索引所占空间。 当表被TRUNCATE...

    SQL中Truncate的用法

    TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。下面介绍SQL中Truncate的用法 当你不再需要该表时, 用 drop;当你仍要保留该表,但要...

    详解SQL中drop、delete和truncate的异同

     truncate和不带where子句的delete,以及drop 都会删除表内的数据 第二:不同点: 1. truncate和delete只删除数据不删除表的结构(定义)  drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引...

    MySQL Truncate用法详解

    前言: 当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足...执行truncate语句需要拥有表的drop权限,从逻辑上讲,truncate table类似于delete删除所有行的语句或drop table然后再create

    利用 Oracle 系统触发器防止误删除表操作

    利用oracle 系统触发器防止用户使用drop table 或truncate table 命令。

    SQL语句教程.doc

    TRUNCATE TABLE 31 INSERT INTO 32 UPDATE 33 DELETE FROM 34 进阶SQL 35 UNION 36 UNION ALL 37 INTERSECT 38 MINUS 39 子查询 40 EXISTS 42 CASE 43 算排名 44 算中位数 45 算总合百分比 47 算累积总合百分比 48 ...

    MySQL删除表的三种方式(小结)

    drop table drop 是直接删除表信息,速度最快,但是无法找回数据 例如删除 user 表: drop table user; truncate (table) truncate 是删除表数据,不删除表的结构,速度排第二,但不能与where一起使用 例如删除 ...

    Java开发工程师面试题资料

    8. delete from table 与 truncate table 的区别?drop table 呢 9. union 和 union all 有什么不同? 10. JDBC 访问数据库的步骤?(重点) 11. 大数据量下的分页解决方法. 12. 简述建立索引的作用和索引的分类 ? ...

    MySQL_5[1].1_zh.chm中文版的mayql说明书

    DROP TABLE语法 13.1.9. RENAME TABLE语法 13.2. 数据操作语句 13.2.1. DELETE语法 13.2.2. DO语法 13.2.3. HANDLER语法 13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法...

    31.误删数据后除了跑路还能怎么办?1

    1. 使用delete语句误删数据行 2. 使用drop table或者truncate table语句误删数据表 3. 使用drop database语句误删

    sql删除表中的记录的方法

    sql删除表中的记录的方法 1.删除表中的行:TRUNCATE TABLE 2.删除表中的行:DELETE 语句 3.删除表:DROP TABLE TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作。

    删除mysql数据表如何操作

    在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。 如果要...

    Oracle带输入输出参数存储过程(包括sql分页功能)

    ”这一句不然其他的session无法drop(TRUNCATE TABLE 表名 必须在 ‘drop table 表名’ 这一句前执行) create or replace procedure p_DevData(p_id IN varchar2(150),pageIndex in NUMBER,pageC

    鱼肠SQL数据库修复工具

    该程序是MSSQL表数据恢复专用程序。... Drop table,truncate table ,delete from语句误操作的数据恢复。 LDFVIEW: 1. MSSQL日志分析和浏览,数据修改寻踪。 2. 通过日志恢复误delete和update 的表数据

Global site tag (gtag.js) - Google Analytics