首页 > 其他分享 >KingbaseES 临时表

KingbaseES 临时表

时间:2024-03-28 15:48:08浏览次数:22  
标签:temp 临时 会话 temp1 test KingbaseES id

临时表在数据库管理和数据处理中有着广泛的应用,主要用于存储临时数据或进行中间计算。临时表中的数据对会话是私有的,每个会话只能看到和修改自己会话的数据。
KingbaseES支持本地临时表和全局临时表。创建临时表时若不指定GLOBAL或LOCAL,则默认值指定为LOCAL。

本地临时表和全局临时表有如下四点区别:
1.本地临时表在临时模式下,用户不可以指定;但是全局临时表创建在用户指定模式下;
2.本地临时表对象本身并不是一直存在,在会话退出后,本地临时表会被删除;全局临时表创建之后,一直存在,除非显示去删除它。
3.删除本地临时表,不受其他会话影响;但是删除全局临时表时,所有会话都不能持有全部临时表的数据。
4.全局临时表不支持外键约束也不支持其他表引用全局临时表作为外键约束,而本地临时表没有这个要求。

会话1 创建本地临时表

test=# create temp table temp1(id integer);
CREATE TABLE
test=# insert into temp1 values(1);
INSERT 0 1
test=# select * from temp1;
 id
----
  1
(1 行记录)

test=# \d temp1
         数据表 "pg_temp_5.temp1"
 栏位 |  类型   | 校对规则 | 可空的 | 预设
------+---------+----------+--------+------
 id   | integer |          |        |

test=# \q
[kbc7@singlekbdb ~]$  ksql -Usystem -d test -p 7788
ksql (V8.0)
输入 "help" 来获取帮助信息.

test=# \d temp1
没有找到任何名称为 "temp1" 的关联.

可以看到本地临时表是创建在临时的用户模式下(pg_temp_5),会话退出后本地临时表被删除了。

会话1 创建全局临时表

test=# create global temp table temp_g(id integer) on commit preserve rows;
CREATE TABLE
test=# insert into temp_g values(1);
INSERT 0 1
test=# select * from temp_g;
 id
----
  1
(1 行记录)

test=# \d temp_g
          数据表 "public.temp_g"
 栏位 |  类型   | 校对规则 | 可空的 | 预设
------+---------+----------+--------+------
 id   | integer |          |        |

test=# \q
[kbc7@singlekbdb ~]$  ksql -Usystem -d test -p 7788
ksql (V8.0)
输入 "help" 来获取帮助信息.

test=# select * from temp_g;
 id
----
(0 行记录)

可以看到全局临时表是创建在默认的public模式下,会话退出后全局临时表依然存在。有public用户权限的用户都可以操作这张临时表

标签:temp,临时,会话,temp1,test,KingbaseES,id
From: https://www.cnblogs.com/kingbase/p/17931006.html

相关文章

  • KingbaseES 执行计划常见节点介绍
    KingbaseES中explain命令来查看执行计划时最常用的方式。其命令格式如下:explain[option]statement其中option为可选项,常用的是以下5种情况的组合:analyze:执行SQL并且显示实际的运行时间和其他统计信息,默认FALSE。注意:加了analyze会真正执行SQL语句verbose:显示附加信息,比如......
  • KingbaseES 通过触发器实现查看表的创建时间
    从oracle迁移至KingbaseES的用户,经常会问在KingbaseES中怎么查询表的创建时间。由于KingbaseES本身并不直接存储表的创建时间,所以获取这一信息通常需要依赖于间接方法或日志记录。如果确实有这种需求,可以通过创建事件触发器的将相关的信息保存下来。建立保存信息的数据表CREAT......
  • KingbaseES查找慢查询语句和阻塞会话
    在处理数据库性能问题时,识别和分析慢查询及阻塞会话是至关重要的步骤。数据库管理员和开发人员常常需要依赖特定的工具和查询语句来追踪这些性能瓶颈。当数据库响应变慢或出现处理延迟时,第一步通常是查找那些执行时间过长的查询,这些查询通常被称为“慢查询”。同时,阻塞会话即那......
  • KingbaseES自动生成列介绍
    在KingbaseES中createtable语句支持GENERATEDcolumn(生成列)。生成列是一种特别的列类型,它的值基于其他列的值计算得出。因此,生成列之于列,有点像视图之于表的关系。存在两种类型的生成列:存储生成列和虚拟生成列。存储生成列在数据被写入(插入或更新操作)时进行计算,并且像常规列......
  • KingbaseES LWLock buffer_mapping 等待
    在KingbaseES数据库中,会话在将数据块与共享缓冲池的缓冲区相关联时,会触发“LWLockbuffer_mapping”等待事件。这类事件涉及到一种轻量级锁(lwlock),类似于Oracle中的闩锁。这个锁在不同的数据库中可能有不同的名称,但通常被称为buffer_mapping或BufMappingLock。它主要用于实现对HAS......
  • KingbaseES V8R6集群运维案例之---主备failover切换原因分析
    案例说明:生产环境,KingbaseESV8R6的集群发生failover切换,分析集群切换的原因。适用版本:KingbaseESV8R6集群架构:137.xx.xx.67主原备库137.xx.xx.94原主库137.xx.xx.68vip地址一、日志分析1、分析原备库hamgr.log如下所示,通过原备库hamgr.log日志获取到具体......
  • KingbaseES V8R6数据库运维案例之---用户权限导致的备份恢复故障
    案例说明:由于限制了用户对数据库的访问,导致在执行‘sys_backup.shinit’初始化物理备份时,执行失败。适用版本:KingbaseESV8R6一、问题现象如下所示,执行‘sys_backup.shinit’初始化物理备份:1、执行初始化失败[kingbase@node201bin]$shsys_backup.shinitERROR:Con......
  • 【PG】临时禁用约束-法一
    createorreplacefunctiondisable_triggers(aboolean,nspcharactervarying)returnsvoidas$$declareactcharactervarying;rrecord;beginif(aistrue)thenact='disable';elseact='enable';endi......
  • 【PG】临时禁用约束-法二
    CREATEORREPLACEFUNCTIONdisable_triggers(aboolean,nspcharactervarying)RETURNSvoidAS$BODY$declareactcharactervarying;rrecord;beginif(aistrue)thenact='disable';elseact='enable';......
  • 关于RDK X3(旭日X3派)的VPS不能输出300x300照片的临时解决办法参考
    探索工具使用JupyterNotebook逐句运行Python代码,并且可以通过matplotlib模块将nv12格式的图像直接在开发机的浏览器上显示。**如何为RDKX3安装JupyterNotebook:**https://developer.horizon.cc/forumDetail/188481611833243692**如何使用matplotlib将nv12的图像显示出......