zoukankan      html  css  js  c++  java
  • MySQL--delete/truncate/drop

    1. delete---delete from SC where id='1001'+++删除数据,留下表的结构(又称表的定义),表的数据和索引空间不会减少
    2. truncate---truncate demo3 SC+++删除数据,留下表结构,表的数据和索引空间恢复至初始值大小
    3. drop---drop demo3 SC/drop database demo3+++删除所有,空间释放
    • truncate 和 delete 只删除数据不删除表的结构 ,drop 语句将删除表的结构被依赖的约束(constrain), 触发器(trigger), 索引(index); 依赖于该表的存储过程/函数将保留, 但是变为 invalid 状态。
    • delete 语句是 dml, 操作会放到 rollback segement 中, 事务提交之后才生效; 如果有相应的 trigger, 执行的时候将被触发。 truncate, drop 是 ddl, 操作立即生效, 原数据不放到 rollback segment 中, 不能回滚。 操作不触发 trigger。
    • delete 语句不影响表所占用的 extent, 高水线保持原位置不动。  truncate 语句缺省情况下见空间释放到 minextents 个 extent, 除非使用 reuse storage; truncate会将高水线复位(回到最开始)。

    小心使用 drop 和 truncate, 及时备份。否则哭都来不及。

    • 删除表用 drop。
    • 保留表而将所有数据删除。如果和事务无关, 用 truncate 。 如果和事务有关, 或者想触发 trigger, 还是用 delete。
    • 如果是整理表内部的碎片, 可以用 truncate 跟上 reuse stroage, 再重新导入/插入数据。
  • 相关阅读:
    python的os模块命令
    python的os模块
    albert1017 Linux下压缩某个文件夹(文件夹打包)
    装饰器加不加()
    json和jsonp解决跨域传输数据等
    wsgi
    flask建立数据模型数据类型
    爬虫中
    javaweb学习总结(四)——Http协议
    JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)
  • 原文地址:https://www.cnblogs.com/Dfrank/p/11839467.html
Copyright © 2011-2022 走看看