truncate和delete之间有什么区别

truncate和delete之间有什么区别... truncate和delete之间有什么区别 展开
 我来答
小甜甜爱亮亮
高粉答主

推荐于2019-08-05 · 说的都是干货,快来关注
知道大有可为答主
回答量:689
采纳率:98%
帮助的人:21.5万
展开全部

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...

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式