truncate和delete区别(truncate跟delete的区别)
truncate跟delete的区别
数据库DROP命令和DELETE命令的本质区别主要在触发条件,用法,执行速度上有区别,具体如下:
1、触发条件不同
delete语句是数据库操作语言(dml),这个操作会放到rollbacksegement中,在事务提交后生效,执行时触发相应的trigger。
drop是数据库定义语言(ddl),操作立即生效,原数据不放到rollbacksegment中,不能回滚,操作不触发trigger。
2、用法不同
delete只删除内容、释放空间但不删除定义,而delete即可以对行数据进行删除,也可以对整表数据进行删除。
drop是删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。
3、执行速度不同
drop的执行速度大于delete。
delete的执行速度小于drop。
扩展资料:
dropdatabase与DeleteDatabase的使用场合:
当你不再需要该表时,用drop。
当你仍要保留该表,但要删除所有记录时,用truncate。
当你要删除部分记录时(alwayswithawhereclause),用delete。
参考资料来源:
delete与truncate区别
文档讲此二者皆用于temporary table,delete rows用于事务相关,也就在事务结束后truncate data in the temporary table.preserve rows表示在会话结束后清除临时表的数据前者在事务提交后数据就已经清除了.后者在会话中止时或者导常退出时数据都会被清除掉.
delete和truncate差别
imp odm/odm@odm file=I:\odm.dmp fromuser=odm touser=odm ignore=y
这样写的话忽略数据库对象存在的报错,不过你的数据可能会有重复。不想重复的话:
1、导出时使用query选项,将你需要的更新的数据导出(前提是你的数据能有分辨是否是更新项的字段)。
2、在你的电脑中将数据删除(delete或truncate,个人建议truncate),那样导入的都是最新的数据了。
3、drop你电脑中odm的所有对象,用在imp时会自动建立。
truncat和delete
删除表中的数据:delete from 表名;truncate table 表名;
删除表:drop table 表名;
删除数据库:drop database 数据库名;
甲骨文股份有限公司(NASDAQ:ORCL,Oracle)是全球大型数据库软件公司。总部位于美国加州红木城的红木岸(Redwood Shores),现时首席执行官为公司创办人劳伦斯·埃里森(Lawrence J. Ellison)。
truncate与delete有什么区别
方法一:DeleteForm表名方法二:TRUNCATETABLE在功能上与不带WHERE子句的DELETE语句相同:二者均删除表中的全部行。
但TRUNCATETABLE比DELETE速度快,且使用的系统和事务日志资源少。
DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项。
TRUNCATETABLE通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATETABLE删除表中的所有行,但表结构及其列、约束、索引等保持不变。
新行标识所用的计数值重置为该列的种子。
如果想保留标识计数值,请改用DELETE。
如果要删除表定义及其数据,请使用DROPTABLE语句。
对于由FOREIGNKEY约束引用的表,不能使用TRUNCATETABLE,而应使用不带WHERE子句的DELETE语句。由于TRUNCATETABLE不记录在日志中,所以它不能激活触发器。TRUNCATETABLE不能用于参与了索引视图的表。贴过来的,但是很全面一般就是DLEETEfrom表
简述truncate和delete的区别
删除表数据有两种方法:delete和truncate。具体语句如下:
一、RUNCATE TABLE name :删除表中的所有行,而不记录单个行删除操作。 在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。
TRUNCATE TABLE 的语法:TRUNCATE TABLE name ,参数 name 是要截断的表的名称或要删除其全部行的表的名称。
二、Delete from tablename where 1=11、delete语法:DELETE FROM 表名称 WHERE 列名称 = 值。
2、删除所有行:可以在不删除表的情况下删除所有的行。
这意味着表的结构、属性和索引都是完整的:DELETE FROM table_name。扩展资料:truncate和delete的共同点及区别:
1、 truncate和 delete只删除数据不删除表的结构(定义) 。
2、delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发。
truncate是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger。
3、delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动 。
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始)。
4、速度,一般来说: truncate >delete 。参考资料:
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.