• oracle 临时表 在sql 里面用完要删除吗


    临时表 在sql 里面用完要删除吗

    Oracle数据库中,如果您使用的是ON COMMIT DELETE ROWS创建的临时表,那么当当前会话结束或者执行了显式的COMMITROLLBACK操作后,表中的数据会自动被清除。这意味着通常情况下,您不需要手动删除临时表中的数据。

    但是,对于临时表本身(表结构),如果您是通过CREATE GLOBAL TEMPORARY TABLE命令创建的,这个表结构会一直存在,直到您手动执行DROP TABLE语句。一般情况下,全局临时表作为一种数据库对象,设计用于跨多个会话重复使用,因此不会因为数据的清除而自动消失。

    总结:

    • 数据:对于ON COMMIT DELETE ROWS的临时表,数据会在事务结束时自动删除,无需手动干预。
    • 表结构:全局临时表的结构会持续存在,除非您显式地执行DROP TABLE命令来删除它。如果临时表是为了特定任务创建且不再需要,确实应该考虑在任务完成后删除它,以保持数据库的整洁和管理效率。

    如果您的应用场景是一次性的或者周期性的脚本,可以在脚本的最后添加如下命令来删除临时表结构(仅当确定不再需要时):

    DROP TABLE temp_policy_base;
    

    但请谨慎操作,确保这个操作不会影响到其他正在使用该临时表的会话或进程。

    那下一次 还要创建表结构吗、

    如果使用的是全局临时表(CREATE GLOBAL TEMPORARY TABLE创建的表),并且在使用完毕后没有执行DROP TABLE命令,那么表结构会保留下来。下次需要使用时,无需再次创建表结构,直接使用即可。

    全局临时表的特点之一就是其结构是持久化的,数据则根据定义(如ON COMMIT DELETE ROWS)来决定生命周期。这意味着只要不主动删除,表结构会一直存在,对于需要频繁使用相同临时存储结构的场景特别有用。

    总结来说:

    • 如果你保留了临时表的结构(没有执行DROP TABLE),那么下次使用时,直接插入数据或执行查询即可,无需重新创建表结构。
    • 如果你删除了临时表结构(执行了DROP TABLE),那么下次使用之前需要重新执行CREATE GLOBAL TEMPORARY TABLE语句来创建表结构。
  • 相关阅读:
    python sqlalchemy(ORM)- 02 表关系
    力扣刷题day47|392判断子序列、115不同的子序列
    jQuery选择器参考手册
    为什么传递SPIF_SENDCHANGE标志SystemParametersInfo会挂起?
    电子印章结构以及规范讲解
    双11狂欢最后一天
    【1day】金和协同管理平台c6系统任意文件读取漏洞学习
    数据结构与算法-腾讯面试题单向链表的翻转
    使用Fiddler进行移动端抓包和模拟弱网络测试
    PyTorch Geometric (PyG) 包 文档学习笔记(持续更新ing...)
  • 原文地址:https://blog.csdn.net/weixin_48616345/article/details/138900844