zoukankan      html  css  js  c++  java
  • MySql中drop、truncate、delete的区别

    1.drop:能对table和view

    用法:

     drop table [is exists] 表1,表2,表3....;

    ①drop是DDL中删除表的操作,会删除表结构和所有数据,并释放空间。

    ②并且因为事务的特性,DDL会进行隐式提交,所以不能进行事务回滚

    ③drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程、函数将保留,但是变为invalid状态。

     2.truncate:只能对table

    用法:

    truncate table 表名

    ①truncate是DDL中删除表的操作,会删除表并重新创建一个表。

    ②并且因为事务的特性,DDL会进行隐式提交,所以不能进行事务回滚

    ③对于外键(foreignkey )约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句。

    ④truncatetable不能用于参与了索引视图的表。

    3.delete:能对table和view

    用法:

    delete from 表名 [where condition];

    ①delete是DML中删除数据的操作,只有在commit或者是执行DDL操作或者安全退出时事务会提交,在这之前可以回滚

    ②delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。

    ③delete语句不会影响表所占的空间。

    三者中最快的是drop,直接删除,truncate因为也是直接删除,但是由于还要重新创建所以比drop慢,但是比delete快。

  • 相关阅读:
    前端基础(2)CSS
    前端基础(1)、HTML
    MySQL数据库,这一篇就够啦!!!(持续更新)
    十、数据库之流程控制
    九、数据库之存储过程和函数
    spring注解总结
    eclipse导入项目后错误的处理方式
    ssm分页查询错误
    字节编址和字的区别(转)
    数据库查询练习
  • 原文地址:https://www.cnblogs.com/wxw7blog/p/7874246.html
Copyright © 2011-2022 走看看