• Postgresql临时表


    https://www.cnblogs.com/baisha/p/8074716.html

    PostgreSQL支持两类临时表,会话级和事务级临时表。在会话级别的临时表中,在整个会话的生命周期中,数据一直保存。事务级临时表,数据只存在于这个事务的生命周期中。不指定临时表的属性,

    PostgreSQL中,不管是事务级还是会话级临时表,当会话结束时,临时表就会消失。这与oracle数据库不同,在oracle数据库中,只是临时表中的数据消失,而临时表还存在。

    示例:

    创建临时表temp

    使用其他会话查看临时表,可以看到查询不到临时表temp

    使用“pg_temp_5.temp”可以查询到temp的信息

    关闭创建临时表的会话,使用另一个会话再次查看,表已经被删除。

    创建临时表,当前会话可以正常访问临时表中数据

    使用另一个会话查询该临时表中的数据,不能查询数据

    如果在两个不同的session中创建一个同名的临时表,实际上创建的是两张不同的表。

    使用另一会话创建同名临时表 ,示例如下:

    创建事务级临时表,示例如下

    总结

    PostgreSQL临时表是schema下所生成的一个特殊的表,这个schema的名称为“pg_temp_n”,其中n代表数字,不同的session数字不同。

    一个会话创建的临时表不能被其他会话访问。

    默认情况下,创建的临时表是会话级的,如果需要创建事务。需要添加“on commit delete rows”子句。(注:“on commit”子句形式有三种:“on commit preserve rows”,默认值,会话级;“on commit delete rows”,事务级,事务结束,删除数据;“on commit drop”,事务级,事务结束,删除临时表)

    创建临时表的关键字“temporary”可以缩写为“temp”。

    PostgreSQL为了与其他数据库创建临时表的语句保持兼容,还没有“GLOBAL”和“LOCAL”关键字,但两个关键字没有用处。

  • 相关阅读:
    hust 1605 bfs
    hdu 1512
    2013 ACMICPC 杭州现场赛 I题
    2013年 ACMICPC 杭州赛区H题
    hdu 3717 二分+队列维护
    hdu 2993 斜率dp
    hdu 3480 斜率dp
    hdu 3507 斜率dp
    hdu 2829 斜率DP
    零碎笔记
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/13049951.html
Copyright © 2020-2023  润新知