标签:style blog color os 使用 strong ar 数据 div
TRUNCATE和DELETE有以下几点区别
1)TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2)TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3)TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4)TRUNCATE不能触发任何DELETE触发器。
5)不能授予任何人清空他人的表的权限。
6)当表被清空后,表和表的索引讲重新设置成初始大小,而delete则不能。
7)不能清空父表。
有表A B C,B C中有引用A表字段的外键。先truncate表B C(子表-外键表),然后truncate表A(父表),出现错误:ORA- 02266: 表中的唯一/主键被启用的外键引用
truncate和DELETE不同,TRUNCATE不能直接这么操作,需要:禁用/激活约束
alter table a disable primary key cascade ; //主键不被级联,(关键字还有drop/modify)
truncate table a;
alter table a enable primary key; //主键被级联
数据库的增删查改insert,delete,select,update
标签:style blog color os 使用 strong ar 数据 div
原文地址:http://www.cnblogs.com/bitter-first-sweet-last/p/3948587.html