要删除一个表,你可以使用SQL语句DROP
TABLE。例如,又从数据库中彻底删除表mytable,你要使用如下的语句:
DROP TABLE mytable
truncate操作
同没有where条件的delete操作十分相似,只是把表里的信息全部删除,单是表依然存在。
1、无论truncate大表还是小表速度都非常快。delete要产生回滚信息来满足回滚需求,而truncate是不产生的。
2、truncate是DDL语句进行隐式提交,不能进行回滚操作。
3、truncate重新设定表和索引的HWM(高水标记),由于全表扫描和索引快速扫描都要读取所有的数据块知道HWM为止。所以全表扫描的性能不会因为delete而提高,但是经过truncate操作后速度会很快。
4、truncate不触发任何delete触发器。
5、不能赋给某个用户truncate其它用户表的权限。如果需要trucate其它用户表的权限必须对该用户赋DROP
ANY TABLE权限。
6、当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表或索引所占用的空间。
7、不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。
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 (schema)table_name DROP(REUSE) STORAGE
在默认是 DROP STORAGE 当使用DROP
STORAGE时将缩短表和表索引,将表收缩到最小范围,并重新设置NEXT参数。REUSE
STORAGE不会缩短表或者调整NEXT参数在特殊情况下使用
REUSE ST
DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
浙公网安备 33010602011771号