truncate table语句和delete table语句的区别

truncate table 表名 ;

delete from 表名;

都是用来删除表中所有的记录,前者删除数据后表的标识列会重新开始编号,它比delete语句使用的系统资源和事务日志资源更少,但是表的结构,列,约束,索引等不会被改动,同时不能用于有外键约束引用的表,在实际工作中,不建议使用truncate ,因为使用它删除的数据不能恢复还原,而使用delete的话就可以恢复

时间: 2024-11-05 13:47:43

truncate table语句和delete table语句的区别的相关文章

delete table 和 truncate table

转载:http://www.cnblogs.com/herbert/archive/2010/07/06/1772135.html 使用delete语句删除数据的一般语法格式: delete [from] {table_name.view_name} [where<search_condition>] 将XS表中的所有行数据删除 delete XS 执行完后,发现XS表中的数据都删除了,但是表的结构什么都还在. truncate truncate table语句将删除指定表中所有数据,因此也称

CREATE TABLE 表名 AS SELECT 语句

1.新表不存在复制表结构即数据到新表 ? 1 2 create table new_table select * from old_talbe; 这种方法会将old_table中所有的内容都拷贝过来,用这种方法需要注意,new_table中没有了old_table中的primary key,Extra,auto_increment等属性,需要自己手动加,具体参看后面的修改表即字段属性.只复制表结构到新表 ? 1 2 3 4 5 6 # 第一种方法,和上面类似,只是数据记录为空,即给一个false

select count(1) from table where ..这句sql语句的作用

作用是计算一共有多少符合条件的行.1并不是表示第一个字段,而是表示一个固定值,count(1)和count(2)效果是一样的 count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些.count(字段值),将返回符合条件的非空数量 1.查询所有数据,列出7列数据 2.使用count(1)查询结果,返回7 3.使用count(*)查询结果,返回7 4.括号中是表中的字段值,count(字段值),返回表中非空的C_Id字段下的数据数量

mysql报【unknown table in mulit delete】错的原因和解决办法

今天写一个多表连接删除的DELETE语句,在执行的时候发现报错:unknown table in mulit delete,这里记录下原因. 原来报错的DELETE语句: delete sys_project from sys_project as aa left join ( select min(id) as id from sys_project group by sysCode ) as bb on aa.id = bb.id where bb.id is null 要注意的是,这样的语

【翻译自mos文章】怎么有效的drop 或者truncate 有大量extents的table?

怎么有效的drop 或者truncate 有大量extents的table? 来源于: How To Efficiently Drop (or Truncate) A Table With Many Extents (文档 ID 68836.1) 目的: 本文描述了为什么一个用户进程在drop 了一个含有大量extents的table之后消耗大量的cpu资源.并给出一个潜在的workaround以阻止该问题的发生.本质来说,CPU被用于对extents的管理(manipulate),比如movi

7.PL_SQL——在PL_SQL程序中内嵌查询语句、DML语句和事物处理语句

在PL/SQL中可以使用的SQL语句主要有以下几类: SELECT 查询语句,DML语句,Transaction 事物处理语句,本文将对这几类语句在PL/SQL中的用法逐一介绍. 一.查询语句-SELECT SELECT 语句用来查询一条或多条语句.虽然SELECT 语句也属于DML语句,但SELECT是只读的,所以单独列出. 在PL/SQL中使用SELECT 语句的格式如下:   SELECT select_list INTO {variable_name[,variable_name]...

oracle中关于删除表purge语句和闪回语句的基本使用

语法: drop table ... purge; 例子:drop table test purge; purge是直接删除表,不保留到回收站,10G开始默认drop表式改名移动到回收站; 闪回(flashback)语句: 1.能在一个语句中把表恢复到指定的时间点: 2.恢复表数据连同索引与约束信息: 3.能返回表及其内容到指定时间点或系统变更号(SCN): 4.修复表的误操作 闪回简单示例: SQL> drop table emp2; Table dropped SQL> select or

查询Oracle正在执行的sql语句及执行该语句的用户

查询Oracle正在执行的sql语句及执行该语句的用户SELECT B.SID ORACLEID,B.USERNAME 登录ORACLE用户名,B.SERIAL#,SPID 操作系统ID,PADDR,SQL_TEXT 正在执行的SQL,B.MACHINE 计算机名FROM V$PROCESS A, V$SESSION B, V$SQLAREA CWHERE A.ADDR = B.PADDRAND B.SQL_HASH_VALUE = C.HASH_VALUE; --查看正在执行sql的发起者的发

truncate delete drop三者的区别

truncate事务不能回滚,delete能够事务回滚.truncate与不带where语句的delete作用相类似,因为truncate使用系统和事务日志比较少,所以效率比一行行删除语句的delete效率要高的多. truncate删除表内容,释放表内容,不删除表结构定义. delete删除表内容,不释放表空间,不删除表结构定义. drop删除表内容,释放表空间,删除表结构定义.