iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何在SQL中使用Truncate
  • 289
分享到

如何在SQL中使用Truncate

2024-04-02 19:04:59 289人浏览 薄情痞子
摘要

这篇文章给大家介绍如何在sql中使用Truncate,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、Truncate语法[ { database_name.[&n

这篇文章给大家介绍如何在sql中使用Truncate,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、Truncate语法

[ { database_name.[ schema_name ]. | schema_name . } ]
  table_name
[ ; ]

参数

database_name

数据库的名称。

schema_name

表所属架构的名称。

table_name

要截断的表的名称,或要删除其全部行的表的名称。

二、Truncate使用注意事项

1、TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 

2、DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

3、TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。 

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

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

6、对用TRUNCATE TABLE删除数据的表上增加数据时,要使用UPDATE STATISTICS来维护索引信息。

7、如果有ROLLBACK语句,DELETE操作将被撤销,但TRUNCATE不会撤销。 

三、不能对以下表使用 TRUNCATE TABLE

1、由 FOREIGN KEY 约束引用的表。(您可以截断具有引用自身的外键的表。)

2、参与索引视图的表。

3、通过使用事务复制或合并复制发布的表。

4、对于具有以上一个或多个特征的表,请使用 DELETE 语句。

5、TRUNCATE TABLE 不能激活触发器,因为该操作不记录各个行删除。

四、TRUNCATE、Drop、Delete区别

1.drop和delete只是删除表的数据(定义),drop语句将删除表的结构、被依赖的约束(constrain)、触发器 (trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态。

2.delete语句是DML语言,这个操作会放在rollback segement中,事物提交后才生效;如果有相应的触发器(trigger),执行的时候将被触发。truncate、drop是DDL语言,操作后即 生效,原数据不会放到rollback中,不能回滚,操作不会触发trigger。

3.delete语句不影响表所占用的extent、高水线(high watermark)保持原位置不动。drop语句将表所占用的空间全部释放。truncate语句缺省情况下将空间释放到minextents的 extent,除非使用reuse storage。truncate会将高水线复位(回到最初)。

4.效率方面:drop > truncate > delete

5.安全性:小心使用drop与truncate,尤其是在 没有备份的时候,想删除部分数据可使用delete需要带上where子句,回滚段要足够大,想删除表可以用drop,想保留表只是想删除表的所有数据、 如果跟事物无关可以使用truncate,如果和事物有关、又或者想触发 trigger,还是用delete,如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入、插入数据。

6.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。

7、drop一般用于删除整体性数据 如表,模式,索引,视图,完整性限制等;delete用于删除局部性数据 如表中的某一元组

8、DROP把表结构都删了;DELETE只是把数据清掉

9、当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.

关于如何在SQL中使用Truncate就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 如何在SQL中使用Truncate

本文链接: https://www.lsjlt.com/news/54633.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在SQL中使用Truncate
    这篇文章给大家介绍如何在SQL中使用Truncate,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、Truncate语法[ { database_name.[&n...
    99+
    2022-10-18
  • 如何在MySQL中使用truncate table语句
    如何在MySQL中使用truncate table语句?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Truncate table语句用来删除/截断表里的所有数据和delet...
    99+
    2023-06-14
  • mysql中truncate函数如何使用
    truncate函数作用:mysql中truncate函数的作用是对一个数字按固定的小数点位数进行截取。truncate函数语法:SELECT TRUNCATE(num,radix_point);参数:num:表示需要截取的数字。radix...
    99+
    2022-10-15
  • Linux中如何使用Truncate命令
    这篇文章主要为大家展示了“Linux中如何使用Truncate命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中如何使用Truncate命令”这篇文章吧。Truncate命令通常用于...
    99+
    2023-06-15
  • 怎么在Linux中使用Truncate命令
    今天就跟大家聊聊有关怎么在Linux中使用Truncate命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Truncate命令通常用于将文件缩小或扩展到指定的大小。如果文件大于指定...
    99+
    2023-06-28
  • sqlserver中truncate和delete语句如何使用
    sqlserver中truncate和delete语句如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。truncate出没场合:tr...
    99+
    2022-10-18
  • mybatis如何使用truncate清空表
    目录使用truncate清空表Mapper接口XML文件事务方法中使用truncate会发生什么场景问题解释使用truncate清空表 Mapper接口 void truncateT...
    99+
    2022-11-13
  • 如何在SQL中使用Group By
    本篇文章为大家展示了如何在SQL中使用Group By,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、概述“Group By”从字面意义上理解就是根据“By”指定...
    99+
    2022-10-18
  • 如何正确的使用Truncate Table语句
    本篇文章给大家分享的是有关如何正确的使用Truncate Table语句,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。TRUNCATE TAB...
    99+
    2022-10-18
  • SQL语句中删除表数据drop、truncate和delete的用法
    一、SQL中的语法 1、drop table 表名称 eg: drop table dbo.Sys_Test 2、truncate table 表名称 eg: truncate table dbo.Sys_Test ...
    99+
    2023-08-31
    sql 数据库 sqlserver mysql Powered by 金山文档
  • 如何在PHP中使用SQL语句
    作为一种流行的编程语言,PHP提供了许多数据库操作的工具和方法,其中最常用的就是SQL(Structured Query Language)语句。SQL是一种用于访问和管理关系数据库(RDBMS)的语言,它可以允许我们通过操作表格、行和列来...
    99+
    2023-05-20
    使用 SQL PHP
  • 如何在SQL中的SELECT语句中使用REPLACE
    在SQL中,可以使用REPLACE函数来替换SELECT语句中的特定字符或字符串。语法如下:SELECT REPLACE(c...
    99+
    2023-09-26
    SQL
  • 在Oracle数据库中如何使用SQL*Plus
    本篇内容介绍了“在Oracle数据库中如何使用SQL*Plus”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2022-10-18
  • 如何在SQL数据库中使用主键
    这篇文章将为大家详细讲解有关如何在SQL数据库中使用主键,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。SQL数据库中主键(Primary Key) 中的每一...
    99+
    2022-10-18
  • 在sql查询中如何使用where子句
    这篇文章将为大家详细讲解有关在sql查询中如何使用where子句,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在sql查询中使用where子句指出的是...
    99+
    2022-10-18
  • SQL中如何使用EXISTS
    今天就跟大家聊聊有关SQL中如何使用EXISTS,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。EXISTS指定一个子查询,检测行的存在。语法EXIS...
    99+
    2022-10-18
  • SQL中distinct如何使用
    今天就跟大家聊聊有关SQL中distinct如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在使用mysql时,有时需要查询出某个字段不重复的...
    99+
    2022-10-18
  • SQL 中STUFF如何使用
    SQL 中STUFF如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、作用删除指定长度的字符,并在指定的起点处插入另一组字符。2、...
    99+
    2022-10-18
  • SQL中EXISTS如何使用
    这篇文章主要介绍了SQL中EXISTS如何使用,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。比如在Northwind数据库中有一个查询为SELE...
    99+
    2022-10-18
  • SQL中Join如何使用
    这篇文章给大家介绍SQL中Join如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、INNER JOIN(内连接)SELECT FROM Table...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作