TRUNCATE(truncate数据怎么恢复)

http://www.itjxue.com  2023-01-27 01:30  来源:未知  点击次数: 

delete和truncate之间的差别有哪些

delete和truncate命令之间的差别

1、命令类型

delete是数据操作语言(DML)命令;而truncate是数据定义语言(DDL)命令。

2、功能

delete命令根据指定的SQL语句从表中删除单个,多个或所有记录;而truncate命令从数据库中删除所有记录和表结构。

3、Where子句

delete命令支持WHERE子句,可以使用带有DELETE的where子句来过滤和删除特定记录;而,truncate命令不支持WHERE子句。

4、锁定

delete命令采用行级锁定,表中的每一行都被锁定以进行删除;truncate命令采用表级锁定,锁定了整个表以删除所有记录。

5、索引视图

delete命令可以与索引视图一起使用;而,truncate命令不能与索引视图一起使用。

6、执行速度

由于delete命令维护日志,因此速度很慢。但是,由于truncate命令在事务日志中维护最少的日志记录,因此执行速度更快。

7、表结构

delete命令不会影响表结构,而truncate命令会从数据库中删除表结构。

8、事务空间

delete命令比truncate命令使用更多的事务空间。

drop、truncate、delete三种删除的区别

drop:drop table 表名 (删除整个表)

删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。也就是删除整个表。操作不能回滚。

truncate:truncate table 表名 (清空表中的所有数据)

删除内容、释放空间但不删除定义(也就是保留表的数据结构)。与drop不同的是,只是清空表数据而已。

truncate不能删除行数据,虽然只删除数据,但是比delete彻底,它只删除表数据。操作不能回滚。整表数据清空。

delete:delete from 表名 (where 列名 = 值) (删除一行数据)

与truncate类似,delete也只删除内容、释放空间但不删除定义;但是delete即可以对行数据进行删除,也可以对整表数据进行删除。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行回滚操作。

原文链接:

truncate和delete之间有什么区别

TRUNCATE和DELETE有以下几点区别

1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。

2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。

3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。

4、TRUNCATE不能触发任何DELETE触发器。

5、不能授予任何人清空他人的表的权限。

6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

7、不能清空父表。

数据库操作

使用方法:

truncate table table_name;

操作特性:

truncate 只删除表中的所有数据,不删除表的结构;

truncate 使ddl操作立即生效,原数据不放到rollback segment中,不能回滚,操作不触发trigger;

truncate 语句缺省情况下将空间释放到 minextents个 extent,除非使用reuse storage;

truncate 会将高水线复位(回到最开始)。

截取字符串

smarty truncate 截取

从字符串开始处截取某长度的字符.默认是80个。

你也可以指定第二个参数作为追加在截取字符串後面的文本字串.该追加字串被计算在截取长度中。

默认情况下,smarty会截取到一个词的末尾。

如果你想要精确的截取多少个字符,把第三个参数改为"true" 。

例 截取:

index.php:

$smarty = new Smarty;

$smarty-assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');

$smarty-display('index.tpl');

index.tpl:

{$articleTitle}

{$articleTitle|truncate}

{$articleTitle|truncate:30}

{$articleTitle|truncate:30:""}

{$articleTitle|truncate:30:"---"}

{$articleTitle|truncate:30:"":true}

{$articleTitle|truncate:30:"...":true}

输出结果:

Two Sisters Reunite after Eighteen Years at Checkout Counter.

Two Sisters Reunite after Eighteen Years at Checkout Counter.

Two Sisters Reunite after...

Two Sisters Reunite after

Two Sisters Reunite after---

Two Sisters Reunite after Eigh

Two Sisters Reunite after E...

truncate和delete的区别

1、空间不同:

表和索引所占空间。当表被truncate 后,这个表和索引所占用的空间会恢复到初始大小,delete操作不会减少表或索引所占用的空间。

2、应用范围不同:

truncate 只能对table;delete可以是table和view。

3、作用不同:

truncate 和delete只删除数据, drop则删除整个表(结构和数据)。

扩展资料:

函数说明:truncate()会将参数path指定的文件大小改为参数length指定的大小。 如果原来的文件大小比参数length大,则超过的部分会被删除

返回值:执行成功则返回0, 失败返回-1, 错误原因存于errno

错误代码:EACCESS 参数path所指定的文件无法存取

EROFS 欲写入的文件存在于只读文件系统内

EFAULT 参数path指针超出可存取空间

参考资料来源:百度百科-truncate

(责任编辑:IT教学网)

更多