创建一个事务级临时表或者会话级临时表继续测试,在什么情况下临时表里的数据会消失

目录

一、测试事务级临时表

1、创建事务级临时表

2、插入测试数据

3、查看表中的数据

4、提交事务

5、再次查看表中数据

二、测试会话级临时表

1、创建会话级临时表

2、插入测试数据

3、查看表中的数据

4、提交事务再次查看数据

5、关闭当前会话

6、再次进入数据库创建会话

7、再次查看表中数据


 

题目要求的是测试一个,但是在这里我们两个都进行测试

结论说明:

  1. 事务级临时表:

    数据会在每个事务提交时被删除。如果你执行了COMMIT命令,那么表中的数据就会被清除。这意味着在一个事务中插入的数据在另一个事务提交后将不再可见。
  2. 会话级临时表:

    数据会在会话结束时被删除。当用户会话结束(例如,用户退出或断开连接),表中的数据将会被清除。如果你希望在会话结束时保留表结构而不是删除它,可以使用 ON COMMIT PRESERVE ROWS 选项。

一、测试事务级临时表

1、创建事务级临时表

CREATE GLOBAL TEMPORARY TABLE transaction_temp_table (
  id NUMBER,
  name VARCHAR2(50)
) ON COMMIT DELETE ROWS;

2、插入测试数据

insert into transaction_temp_table values(1,'test1');
insert into transaction_temp_table values(2,'test2');
insert into transaction_temp_table values(3,'test3');

3、查看表中的数据

select * from transaction_temp_table;

可以看到此时的表中数据还在

4、提交事务

commit;

5、再次查看表中数据

select * from transaction_temp_table;

可以看到表中已经没有数据了,这就是事务级临时表,数据会在每个事务提交时被删除。

二、测试会话级临时表

1、创建会话级临时表

CREATE GLOBAL TEMPORARY TABLE session_temp_table (
  id NUMBER,
  name VARCHAR2(50)
) ON COMMIT PRESERVE ROWS;

2、插入测试数据

insert into session_temp_table values(1,'test1');
insert into session_temp_table values(2,'test2');
insert into session_temp_table values(3,'test3');

3、查看表中的数据

select * from session_temp_table; 

4、提交事务再次查看数据

提交事务

commit;

再次查看表中数据

select * from session_temp_table; 

可以看到数据没有清除(这里和事务级临时表有区别)

5、关闭当前会话

quit()

6、再次进入数据库创建会话

sqlplus / as sysdba

7、再次查看表中数据

select * from session_temp_table; 

可以看到表中数据已经消失 ,这就是会话级临时表,数据会在会话结束时被删除。

三、区别总结

1. 创建语法:

        事务级临时表: 

CREATE GLOBAL TEMPORARY TABLE transaction_temp_table (
    id NUMBER,
    name VARCHAR2(50)
) ON COMMIT DELETE ROWS;

     `ON COMMIT DELETE ROWS` 指定了当事务提交时,表中的数据将被删除。

   会话级临时表:

CREATE GLOBAL TEMPORARY TABLE session_temp_table (
    id NUMBER,
    name VARCHAR2(50)
) ON COMMIT PRESERVE ROWS;

 `ON COMMIT PRESERVE ROWS` 指定了当事务提交时,表中的数据将被保留,但在会话结束时会自动被删除。

2. 数据保留:

   事务级临时表:
           数据在每个事务提交时被删除。在一个事务中插入的数据在另一个事务提交后将不再可见。

   会话级临时表:
        数据在会话结束时被删除。当用户会话结束(例如,用户退出或断开连接),表中的数据将会被清除。

3. 生命周期:

   事务级临时表:

        表的生命周期限定在事务内。当事务提交或回滚时,表中的数据都会被清除。

 会话级临时表:
        表的生命周期限定在用户会话内。当用户会话结束时,表中的数据会被清除。

OK结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/129200.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目管理之如何出道(下)

前言 是谁用烛火照亮整个中国?是一伙伙行走在高压线上的电力工人; 是谁用水枪保护千家万户?是一组组穿梭于大街小巷的消防队伍; 是谁用身体捍卫国防边境?是一队队跋涉在高山深林的可爱战士。 那么作为IT业界的我们&…

GPIO实验:ARM汇编代码实现LED灯亮灭控制

GPIO实验:ARM汇编代码实现LED灯亮灭控制 一、 汇编工程模板Makefile分析 NAMEasm-led #指定编译的源文件名字 CROSS_COMPILE arm-linux-gnueabihf- #指定交叉编译工具链前缀CC $(CROSS_COMPILE)gcc #指定gcc名字LD $(CROSS_COMPILE)ld #指定链接器名字…

“第六十五天”

固态硬盘:SSD 原理:基于闪存技术Flash Memory ,属于电可擦除ROM,即EEPROM; 由闪存翻译层和存储介质组成;闪存翻译层负责翻译逻辑块号,找到对应页,存储介质是由多个闪存芯片构成的&…

Pycharm常用快捷键和替换正则表达式

原生快捷键的使用: 1.CtrlF:查找 2.CtrlZ:返回上一步 3.Alt 鼠标左键选择:多行同时编辑(上、下、左、右键能够移动光标) 按住Ctrl,左键点击,定位光标 编辑过程 URL常用的替换正则表达式&am…

阿里云99元的主机到底怎么样?

我是卢松松,点点上面的头像,欢迎关注我哦! 在云栖大会上,阿里云推出了一款绝对超级超值的99元云服务器,并号称是11月销量王。什么?云栖大会11月2号结束的,你就号称11月销量王,这是未卜先知啊。…

【算法 | 数论 No.1】AcWing1246. 等差数列

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【AcWing算法提高学习专栏】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程&a…

【异常----finally和自定义异常】

文章目录 finally练习问题 异常的处理流程【异常处理流程总结】自定义异常类 finally 有些特定的代码,不论程序是否发生异常,都需要执行,比如程序中打开的资源:在程序正常或者异常退出时,必须要对资源进进行回收。另外…

2023.11.10联测总结

T 1 T1 T1求的是有多少个区间的异或和是 k k k的因子, n , k ≤ 1 0 5 n,k \leq 10^5 n,k≤105。 这道题用前缀和维护一下,暴力枚举所有区间就有 80 80 80分。 有一瞬间想过枚举因数,但是脑抽以为要 O ( n ) \mathcal O(n) O(n)枚举&#x…

计算机技术专业CSIT883系统分析与项目管理介绍

文章目录 前言一、学科学习成果二、使用步骤最低出勤要求 前言 本课程介绍了信息系统开发中的技术和技术,以及与管理信息技术项目的任务相关的方法和过程。 它研究了系统分析师、客户和用户在系统开发生命周期中的互补角色。 它涵盖了引出系统需求的不同事实调查技…

Java进阶API第二章

Java进阶API第二章 一. 抛出企业问题,脱离main测试,模块化编程 1.学校里如何测试的 //学校教的测试方法 public static void main(String[] args) {//2.本地测试//3.调用函数//4.看输出,查看结果是否符合预期//5.预期结果和测试结果是通过人工…

CSS 文字溢出省略号显示

1. 单行文本溢出显示省略号 需要满足三个条件,添加对应的代码: (1)先强制一行内显示文本; (2)超出的部分隐藏; (3)文字用省略号来替代省略的部分&#xf…

创建两个简单表A,B 。AB表有相关联的列。并在关联列上创建索引

目录 一、创建两个简单表,并进行外键关联 1、创建表A 2、创建表B,并且关联表A 二、在关联列上创建索引 三、检查是否成功 一、创建两个简单表,并进行外键关联 1、创建表A CREATE TABLE A (id NUMBER PRIMARY KEY,name VARCHAR2(50),d…

3.5、Linux:命令行git的使用

个人主页:Lei宝啊 愿所有美好如期而遇 在Linux Centos7.6下安装git yum -y install git 注册一个gitee账号 进去注册就好,记住自己的用户名和密码。 创建一个仓库 点击复制,接着就可以在Linux上使用了 git clone git clone 刚才复制的地…

物联网AI MicroPython学习之语法 ustruct 打包和解压原始数据类型

学物联网,来万物简单IoT物联网!! ustruct 介绍 ustruct提供打包和解压原始数据类型的功能。 默认情况下,C类型以机器的本机格式和字节顺序表示,并在必要时通过跳过填充字节来正确对齐(根据C编译器使用的规…

generic webhook trigger 插件

generic webhook trigger 插件 通用 webhook 通过curl 请求触发流水线 rootubuntu20:~/luohuiwen/spring-boot-helloWorld# openssl rand -base64 32 QNJvWjUiNvNhQ4bKleI/5h2iZTKjSMREAvSJRvcM0 curl -X POST -H "Content-Type: application/json" -d { "ref…

C++:关联式容器map的使用

1、map的简介 map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同,并…

操作系统·处理机调度死锁

3.1 处理机调度概述 3.1.1 处理机调度概述 高级调度 (High level Scheduling)决定把外存上哪些作业调入内存、创建进程、分配资源。高级调度又称作业调度、长程调度或宏观调度。只在批处理系统中有高级调度。 中级调度 (Middle level Scheduling)完成进程的部分或全部在内、…

K8S容器持续Terminating无法正常关闭(sider-car容器异常,微服务容器正常)

问题 K8S上出现大量持续terminating的Pod,无法通过常规命令删除。需要编写脚本批量强制删除持续temminating的Pod:contribution-xxxxxxx。 解决 获取terminating状态的pod名称的命令: # 获取media命名空间下,名称带contributi…

短信登录实现(黑马点评为例)

文章目录 前言一、隐藏用户敏感信息二、短信验证登录、注册1.流程2.代码3.使用redis优化解决代码 二、登录拦截(校验)1.流程2.代码 总结 前言 短信登录核心知识 首先黑马点评这个短信登录是一伪验证,即后台调用工具类随机生成六位数字。 1.R…

网络虚拟化介绍(OVS、DVS)

目录 虚拟化中网络架构 虚拟交换机类型 虚拟交换机OVS(Open Vswitch) 分布式虚拟交换机DVS 虚拟机和物理网卡的通信模式 虚拟交换机中其它功能特性 网络虚拟化概念 网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟…