精华内容
下载资源
问答
  • PHP 执行多条 truncate

    2014-10-29 18:56:24
     2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。  不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、...


    相同点:

    1.truncate和不带where子句的delete、以及drop都会删除表内的数据。

     2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。

     不同点:

    1. truncate 和 delete 只删除数据不删除表的结构(定义)
    drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。

     2. delete 语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。

    truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。

     3.delete 语句不影响表所占用的 extent,高水线(high watermark)保持原位置不动

    drop 语句将表所占用的空间全部释放。
    truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;truncate 会将高水线复位(回到最开始)。

     4.速度,一般来说: drop> truncate > delete

     5.安全性:小心使用 drop 和 truncate,尤其没有备份的时候.否则哭都来不及

    使用上,想删除部分数据行用 delete,注意带上where子句. 回滚段要足够大.
    想删除表,当然用 drop
    想保留表而将所有数据删除,如果和事务无关,用truncate即可。如果和事务有关,或者想触发trigger,还是用delete。
    如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。

    6.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。

     7、TRUNCATE   TABLE   在功能上与不带   WHERE   子句的   DELETE   语句相同:二者均删除表中的全部行。但   TRUNCATE   TABLE   比   DELETE   速度快,且使用的系统和事务日志资源少。DELETE   语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE   TABLE   通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 

     8、TRUNCATE   TABLE   删除表中的所有行,但表结构及其列、约束、索引等保持不变(如Primary key 从1开始)。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用   DELETE。如果要删除表定义及其数据,请使用   DROP   TABLE   语句。  

     9、对于由   FOREIGN   KEY   约束引用的表,不能使用   TRUNCATE   TABLE,而应使用不带   WHERE   子句的   DELETE   语句。由于   TRUNCATE   TABLE   不记录在日志中,所以它不能激活触发器。    
     10、TRUNCATE   TABLE   不能用于参与了索引视图的表


    PHP 中执行多条 Truncate语句:

    $queryArray = array(
    "truncate table  table1
    ;",
    "truncate table  table2;",
    "truncate table  table3;",
    "truncate table  table4;",
    "truncate table  table5;",
    "truncate table  table6;",
    );
    //注意每条语句后面带分号,否则会报错
    foreach ($queryArray as $query){
    $this->mysqliService->doDdl($query);
    }



    展开全文
  • 这个不能证明是explain导致的插入。有可能是表中原来就有数据,或是从其它渠道插入了数据。... truncate table t2;Query OK, 0 rows affected (0.12 sec)mysql> select * from t2;Empty set (0...

    这个不能证明是explain导致的插入。有可能是表中原来就有数据,或是从其它渠道插入了数据。

    mysql -umycat -pmycat -h192.168.0.100 -P8066 test

    mysql> truncate table t2;

    Query OK, 0 rows affected (0.12 sec)

    mysql> select * from t2;

    Empty set (0.02 sec)

    mysql> desc t2;

    +-------+------------------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +-------+------------------+------+-----+---------+----------------+

    | id | int(10) unsigned | NO | PRI | NULL | auto_increment |

    | name | int(10) unsigned | NO | | NULL | |

    +-------+------------------+------+-----+---------+----------------+

    2 rows in set (0.01 sec)

    mysql> explain insert into t2 (id,name) values(1,'a');

    +-----------+----------------------------------------+

    | DATA_NODE | SQL |

    +-----------+----------------------------------------+

    | dn1 | insert into t2 (id,name) values(1,'a') |

    +-----------+----------------------------------------+

    1 row in set (0.08 sec)

    mysql> select * from t2;

    Empty set (0.01 sec)

    mysql> explain insert into t2 (id,name) values(2,'a');

    +-----------+----------------------------------------+

    | DATA_NODE | SQL |

    +-----------+----------------------------------------+

    | dn4 | insert into t2 (id,name) values(2,'a') |

    +-----------+----------------------------------------+

    1 row in set (0.00 sec)

    mysql> select * from t2;

    Empty set (0.02 sec)

    展开全文
  • Oracle DDL自动提交

    2017-06-23 11:55:22
    Oracle中,DDL语句会自动提交(隐式提交),而DML则需要手动提交(显示提交)。DDL除了包含常见的:CREATE TABLE/VIEW/INDEX/SYN/CLUSTER 之外, 还包括:truncate…….而DML操作包括:Insert、Update、Delete、...

    Oracle中,DDL语句会自动提交(隐式提交),而DML则需要手动提交(显示提交)。

    DDL除了包含常见的:CREATE TABLE/VIEW/INDEX/SYN/CLUSTER 之外,
    还包括:truncate…….

    而DML操作包括:Insert、Update、Delete、RENAME、Drop、Alter……

    当然还可以通过执行语句:SET AUTOCOMMIT ON; 来设置。
    这样所有的操作,都会自动提交。

    http://blog.csdn.net/tomatofly/article/details/5949070

    展开全文
  • truncate 和delete

    2019-06-26 00:04:19
    1.truncate 是ddl语言,执行后会自动提交,立即生效,所以不能rollback; delete是dml语言,执行后不会自动提交,会先放到rollback segment中,等事务提交后才生效,可以rollback; 2.truncate 是最小模式记录日志,...

    truncate和delete
    1.truncate 是ddl语言,执行后事务会立即自动提交生效,时间很短,所以不能rollback;
    delete是dml语言,执行后不会自动提交,会先放到rollback segment中,等事务提交后才生效,可以rollback;
    2.truncate 是最小模式记录日志,delete以完整模式记录日志,所以truncate比delete速度快;
    3.在有外键约束的情况下,不能直接使用truncate删除数据,要先删除外键;
    delete可以进行删除;
    4.truncate释放空间,delete不释放空间;(drop会全部释放)
    5.truncate删除表中所有数据;delete可以删除表中所有数据delete from table,也可以只删除部分数据,delete from table where (删除where过滤条件为true的部分)
    6.delete和truncate都只是删除数据而不会删除标的结构(drop会删除结构,被依赖的触发器,约束,索引;会保留存储过程和函数,不过会变为无效状态)
    7.delete操作会激活触发器;truncate不会;
    8.delete删除数据后新行标识会延续原来的标识;truncate删除数据后标识会重置为最初的标识(一般从1开始)。

    展开全文
  • delete drop truncate

    2016-07-25 16:18:00
    1 truncate、不带where子句的delete、drop都会删除表内的数据2 drop、truncate都是DDL语句(数据定义语言),执行后会自动提交 二、不同点 1truncate 和 delete 只删除数据不删除表的结构(定义)drop语句将删除表的...
  • SQL drop delete truncate

    2016-01-28 15:15:10
    转自相同点: truncate和不带where子句的delete、以及drop都会删除表内的...drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。[delete是DML语句。] [DDL是自动提交的,DML是手动提交的。在oracle里DML是可
  • truncate、delete、drop

    2017-11-21 17:04:00
    相同点: 1.三者共同点: ... drop、truncate都得DDL语句(数据库定义语言),执行自动提交 不同点: 1. drop与truncate、delete的不同点  truncate 和 delete 只删除数据不删除表的结构(定义)  dro...
  • drop、truncate、delete

    2020-09-18 13:23:00
    2).drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点 1). truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index...
  • truncate 、delete、drop

    2019-09-29 01:10:41
    2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index)...
  • delete truncate 数据操作语言 数据定义语言 操作表中的一条或多条记录 ...drop/truncate都是DDL语句,执行后会自动提交。 2.TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行...
  • drop delete truncate 区别

    2013-07-03 20:27:56
    2.drop,truncate都是DDL(数据定义语言)语句,执行后会自动提交。 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义)   drop语句将删除表的结构被依赖的约束(constrain),触发器(trigg
  • delete、drop、truncate

    2017-02-09 22:06:49
    2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。   不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引...
  • truncate 和delete 的区别

    2015-10-09 10:30:20
    2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、...
  • drop和truncate是DDL语句,执行后会自动提交。 不同点:truncate和delete只删除数据不删除表结构;drop删除表的依赖,索引,触发器。 delete是dml语句,事物提交后会触发触发器;truncate,drop是ddl与语句,不能...
  • MySQL之truncate、delete、drop对表操作分析 ...相同点: truncate和不带where子句的delete、以及drop都会删除表内的...drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: truncate 和 delete...
  • 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引...
  • truncate drop delete比较

    2010-12-09 11:42:38
    2.drop,truncate都是DDL(数据定义语言)语句,执行后会自动提交。   不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引...
  • 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。   不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger
  • 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引...
  • drop、truncate和delete的区别 相同点: ...2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义);   drop 语句将
  • Oracle truncate、 delete、 drop区别 ...2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。   不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构
  • SQL truncate 、delete与drop区别 ...2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。   不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的
  • SQL truncate 、delete与drop区别 ...2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。   不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 237
精华内容 94
关键字:

truncate执行自动提交