DCL中的COMMIT\ROLLBACK以及TRUNCATE和DELETE的对比

  • Post author:
  • Post category:其他


DCL:数据控制语言;



1.COMMIT:

  • 指的是

    提交数据

    ,一旦执行COMMIT,那么数据就被永久地保存在数据库中—那么也就


    不可以回滚




2.ROLLBACK:

  • 指的是

    回滚数据

    ,一旦执行ROLLBACK,那么就可以实现数据的回滚(但是并不一定成功)—回滚到最近的一次

    COMMIT








由此,对比一下


TRUNCATE TABLE(DDL)





DELETE FROM(DML)





  • 相同点:都能删除表中的所有数据,并且保留表结构;

  • 不同点:



    TRUNCATE TABLE



    —>一旦执行此操作,表数据就



    全部



    清除,并且



    数据不可以回滚




    (因为操作完后自动操作了commit)





    DELETE FROM



    —>一旦执行此操作,可以清楚



    全部



    数据(也可清楚



    部分



    ,带WHERE),



    可以实现回滚(也可以不实现)





  • DDL—>一旦执行就不可以回滚;DML—>

    默认情况

    是一旦执行就

    不可以回滚

    ,但可以通过在

    执行之前

    修改参数(



    SET autocommit=FALSE



    )使得可以回滚;

  • 在实际操作中,TRUNCATE TABLE速度比DELETE 快,占用资源少,但是有可能造成事故,所以不建议使用TRUNCATE;



版权声明:本文为m0_65300193原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。