美文网首页
MySQL TRUNCATE TABLE说明

MySQL TRUNCATE TABLE说明

作者: nzdxwl | 来源:发表于2019-11-08 00:05 被阅读0次

    语法truncate table <table_name>
    作用:完全清空整个表的数据,由于实际操作是先删除表后再重建,所以执行这个语句需要有drop的权限。

    与Delete操作不同之处

    1. truncate属于DCL即数据控制语言而非DML数据操作语言,所做操作不能回滚。
    2. truncate是删除整张表后再重建,对比delete操作逐行删除数据效率高,特别是大数据表。
    3. Truncation operations cannot be performed if the session holds an active table lock.
    4. InnoDB或者NDB表有字段作为外键被其他表引用时,对该表执行truncate操作会失败
    5. truncate操作不会返回删除记录数,操作成功提示的“0 rows affected”无实际意义。
    6. 只要表格式文件tablename.frm是有效的,那么即使数据或者索引文件损坏了也能通过truncate操重新创建空表。
    7. 执行truncate操作后,表中如果有自增长字段的话,字段自增长值会重置回初始值。
    8. 对分区表执行truncate操作的话,表的数据和索引文件会删除重建,但是表分区定义文件则不受影响。
    9. truncate操作不会调用ON DELETE触发器。

    更加详细信息可以参考官方文档:
    TRUNCATE TABLE Syntax:https://dev.mysql.com/doc/refman/5.7/en/truncate-table.html

    相关文章

      网友评论

          本文标题:MySQL TRUNCATE TABLE说明

          本文链接:https://www.haomeiwen.com/subject/hfwvbctx.html