PostgreSQL 临时表的范围是什么?

2024-03-15

我已经用谷歌搜索了很多,并且我有相当不错的阅读理解能力,但我不明白这个脚本是否可以在我的 postgres/postgis 盒子上的多个线程中工作。这是代码:

Do
$do$
DECLARE
    x RECORD;
    b int;       
    begin
    create temp table geoms (id serial, geom geometry) on commit drop;

    for x in select id,geom from asdf loop   

        truncate table geoms;
        insert into geoms (geom) select someGeomfield from sometable where st_intersects(somegeomfield,x.geom);

        ----do something with the records in geoms here...and insert that data somewhere else

    end loop;
end;
$do$

那么,如果我在多个客户端(从 Java 调用)中运行该程序,geoms 临时表的范围是否会导致问题?如果是这样,任何在 PostGres 中解决这个问题的想法都会有所帮助。

Thanks


不过,您会遇到一个微妙的陷阱,这就是为什么我还没有准备好声明它“安全”的原因是范围是每个会话,但人们经常忘记删除表(因此它们在断开连接时删除)。

我认为如果您不需要在函数之后使用临时表来在完成后显式删除它,那么您的情况会好得多。这将防止因尝试在同一事务中运行该函数两次而出现问题。 (提交时你会放弃)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL 临时表的范围是什么? 的相关文章

  • PostgreSQL:检查触发器函数中的 NEW 和 OLD

    我想创建一个触发器来计算行数并更新其他表中的字段 我当前的解决方案适用于 INSERT 语句 但当我删除一行时会失败 我当前的功能 CREATE OR REPLACE FUNCTION update table count RETURNS
  • 没有函数与给定名称和参数类型匹配

    我的职能是 CREATE OR REPLACE FUNCTION FnUpdateSalegtab09 iacyrid Integer iRepId Integer iDrId Integer ivrid Integer imode sma
  • LANGUAGE sql 中函数的 RAISE EXCEPTION 语句的等效或替代方法?

    对于下面编写的函数 RAISE EXCEPTION 语句是否有等效的 或解决方法 LANGUAGE sql CREATE OR REPLACE FUNCTION fn interpolation p yearinteger integer
  • 在触发器内调用的 postgres 函数中的 select 语句

    我正在尝试为社交媒体应用程序 网站的后端开发一个通知系统 现在我专注于状态更新 我要做的就是在与状态更新相关的 postgres 表上放置一个触发器 以便每次发布新的状态更新时 都会向我的代码发送通知 到目前为止我已经能够做到这一点 但我喜
  • select from ... - 基于 JSON 格式的值

    假设我有一个数据库表 其中包含几个常见列 例如姓名 性别 年龄 此外 我还有一个附加列 使用 JSON 数据类型 可从 Postgres 9 2 获得 在 JSON 中具有任意长度和任意字段 occupation football occu
  • 如何在 PL/pgSQL IF 语句中运行 SELECT 查询

    我正在尝试使用以下代码在 PL pgSQL IF 语句中运行 SELECT 查询 DO do DECLARE query type real arr real array 1 BEGIN IF query type 1 THEN RETUR
  • 将函数动态应用到 Postgres 表中的所有列

    使用 Postgres 13 1 我想对表的所有列应用前向填充函数 前向填充函数在我之前的问题中进行了解释 如何将前向填充作为 PL PGSQL 函数 https stackoverflow com questions 70987689 h
  • 需要 Postgres 触发器和函数方面的帮助

    我有一个查找表 其中包含一列来源 来自通过我创建的 Web 服务 API 捕获的各种硬编码活动 以及应与其关联的各个品牌 这样我就可以为品牌为空的记录赋予品牌 以便可以通过营销自动化工具使用特定模板来欢迎它们 我最终会弃用这个 API 并用
  • PostgreSQL 9.3:函数不唯一错误

    我创建了以下具有 11 个参数的函数 如下所示 函数调用 SELECT FROM function TableDetails NULL Type Table 2671ffdb 28a4 4ce4 a226 e5a21d66509e D096
  • 幂等 PostgreSQL DDL 脚本

    我正在寻找一种以幂等方式编写 postgreSQL 架构更改脚本的方法 在 MSSQL 中我可以这样做 if not exists select from information schema columns where table nam
  • 触发错误时回滚事务

    我正在尝试检查要插入系统的房间在该日期是否已出租 我已经考虑过计算与房间号和日期匹配的行 然后回滚事务 但即使我更改了代码以引发用户定义的异常 我仍收到以下错误 ERROR cannot begin end transactions in
  • PostgreSQL 中带有字符串的 For 循环

    这里我试图连接一个字符串 CREATE FUNCTION looping RETURNS TABLE round text DECLARE i RECORD BEGIN FOR i IN select regexp split to tab
  • 如何提高 PostgreSQL 中带有游标的函数的性能?

    我有两个嵌套游标的功能 外部游标从源获取客户的付款详细信息 并根据某些业务逻辑插入到目标中 内部光标获取每笔付款的付款详细信息 它接连发生 Payments 表大约有 125000 行 其中大约 335000 行用于付款详细信息 所有这些行
  • plpgsql - pgAdmin 4 不显示 RAISE 消息(例如,通知)

    在使用 pgAdmin III 很长一段时间后 我最近安装了 pgAdmin 4 我注意到在使用 RAISE NOTICE 运行 plpgsql 函数后 消息下没有显示任何内容 我去了https www postgresql org doc
  • pgsql 返回表错误:列引用不明确

    我不断收到此错误 列引用 人 不明确 我需要返回一个表 个人整数 当我使用 SETOF 整数时它工作正常 但在这种情况下它不起作用 我的另一个函数 recurse 完美地返回一组整数 CREATE OR REPLACE FUNCTION t
  • 用 INSERT / UPDATE 的单个查询替换循环

    我正在 PostgreSQL 中编写一个函数 它基本上执行 3 个步骤 从源表中获取一条记录 检查目标表中提取的记录的值 如果在目标表中找到记录 则使用提取的记录更新目标表的所有值 否则将提取的记录插入目标表 如果我写 而不是做这个循环单一
  • plpgsql 函数中 IF EXISTS 内部标识符的变量

    CREATE OR REPLACE FUNCTION drop now RETURNS void AS BODY DECLARE row record BEGIN RAISE INFO in FOR row IN select relnam
  • 在 PostgreSQL 函数中声明并返回自定义类型

    我找到了这篇文章 http wiki postgresql org wiki Return more than one row of data from PL pgSQL functions http wiki postgresql org
  • 如何在 Postgres 中的 JSON 字段上创建索引?

    在 PostgreSQL 9 3 Beta 2 中 如何在 JSON 字段上创建索引 我尝试使用 gt 运算符用于hstore但出现以下错误 CREATE TABLE publishers id INT info JSON CREATE I
  • PostgreSQL - 具有局部变量的函数 - 列引用不明确

    我查看了与我的主题相匹配的其他问题 但就我而言 我认为歧义来自于与列同名的变量 这是我尝试创建的函数的简化版本 CREATE OR REPLACE FUNCTION get user id username TEXT RETURNS INT

随机推荐

  • 获取当前位置(GPS/WiFi)

    我正在尝试使用它来获取我的位置 如下所示 LocationManager myLocationManager LocationManager getSystemService Context LOCATION SERVICE Criteri
  • 如何在打字稿中组织类型/接口声明?

    我对打字稿有点陌生 让我有点困惑的事情之一是类型 接口声明 我正在编写一个库 当前有一些类和更多类型 接口声明 我在大部分代码中使用这些类型 接口 最初我会将它们保留在一个文件中types文件夹 然后我会在需要的地方导入它们 现在我有一个m
  • 如何使用 Python 获取 Selenium WebDriver 中的用户代理信息

    我正在尝试获取我在 Selenium 中使用的实际用户代理 目前使用chromedriver 我找到了这个问题的Java版本 如何在 Selenium Web 驱动程序中获取 userAgent 信息 https stackoverflow
  • 如何获取相对和绝对光标位置?

    我怎样才能得到当前光标位置与SWT I need The absolute位置 仅相对于当前Display 位置relative到当前活动的Control 这获取光标位置相对于当前显示 import org eclipse swt widg
  • 如何在 Scala 的 Play!2 表单中包含图片类型?

    根据本指南 http www playframework org documentation 2 0 2 ScalaFileUpload 可以通过手写html表单来上传文件 我想将文件上传作为包含文本字段 例如姓名和电子邮件 的更大表单的一
  • 使用 ng-repeat 或 ng-options 时如何删除初始空白选项并选择

    有角度的新手 过滤通过dataservice返回的json数据 过滤是通过dropdown完成的 我想做的是结合以下几点 我想删除通过 Angular 返回的初始空白值 我还想让它预先选择一个默认值 该值不是 包含在我的数据对象中 在我的例
  • 在 Swift 2.0 中更改 NSView 的背景颜色

    我正在尝试更改 NSView 的背景颜色 并尝试了中概述的解决方案之一这个答案 https stackoverflow com questions 26553444 swift nsviewcontroller background col
  • Zookeeper:主机名解析失败

    我在 OpenShift Kubernetes 环境中运行 Zookeeper 我已将 Zookeeper 设置为StatefulSet为了可靠地保存配置数据 我在我的配置中配置了三台服务器zoo cfg通过主机名 但在启动时 主机名解析失
  • Base64编码中为什么要使用padding? [复制]

    这个问题在这里已经有答案了 可能的重复 如果输入长度不能被3整除 为什么base64编码需要填充 https stackoverflow com questions 4080988 why does base64 encoding requ
  • 为什么用户登录后看不到动画?

    我创建了一个自定义 LaunchSreen 当用户未登录时它运行良好 但如果他登录了 我们就看不到动画 视图会直接转到主视图 并且不等待动画完成 你知道为什么吗 import SwiftUI struct LaunchScreen View
  • 在 Google 地图片段中显示当前位置

    我目前正在开发一个带有 Google 地图的片段 一旦用户访问该片段 他的地图应该缩放并聚焦于他的位置 但是 它显示世界地图而不是附近位置 靠近用户 SuppressWarnings unused public class Deferred
  • 数据断点是如何创建的?

    我只是想知道如何数据断点 又名观察点 创建了吗 我知道常见的断点是使用 x86 上的一些特殊 INT3 指令创建的 我想你可以创建software通过定期扫描内存来观察点 但是从编写带有硬件断点的自己的调试器的角度来看 我在Windows
  • 为什么要使用 pytest 工厂作为固定装置而不是工厂函数?

    In the py test 文档 https docs pytest org en latest fixture html factories as fixtures它描述了将工厂方法声明为固定装置 如下所示 pytest fixture
  • 停止多线程 Windows 服务

    我在 Net 3 5 中有一个多线程 Windows 服务 当创建多个线程时 我在正确停止该服务时遇到了一些麻烦 该服务过去只创建一个线程来完成所有工作 我只是将其更改为多线程 它工作得很好 但是当服务停止时 如果有多个线程正在执行 它将挂
  • 如何使用命令行将所有 .pdf 文件名打印到输出文件?

    这在 Linux 中似乎很容易 但我正在尝试打印以下名称 pdf目录及其子目录中的文件到输出文件 我在 Windows 机器上安装了 Perl 有什么简单的方法可以做到这一点 和Linux没多大区别 dir pdf gt fileyouwa
  • ./node_modules/css-loader 中出现错误?:ENOENT:没有这样的文件或目录 node_modules/node-sass/vendor

    我试图在 Windows 10 中运行一个 Angular 项目 这与我在 Ubuntu 中做的项目是同一个项目 当我克隆存储库并安装所有节点包时 我遇到了此错误 错误于 node modules css loader sourceMap
  • Delphi 7 中宽字符串到字符串的转换

    我的应用程序是用 Delphi 7 编写的非 unicode 应用程序 我想使用此函数将 unicode 字符串转换为 ANSI function convertU ws widestring string begin result str
  • 我的准确率是0.0,不知道为什么?

    我得到的准确度为 0 0 我正在使用波士顿住房数据集 这是我的代码 import sklearn from sklearn import datasets from sklearn import svm metrics from sklea
  • Safari 7.1 中的 ASPMenu 在 SharePoint 2010 中无法正确呈现

    还有其他人遇到过 Mac 和 iOS8 上最新版本的 Safari 7 1 破坏 SharePoint 2010 中 ASPMenu 控件的问题吗 ASPMenu 之前工作正常 但现在更新后它决定错误地呈现内容 我尝试设置 Page Cli
  • PostgreSQL 临时表的范围是什么?

    我已经用谷歌搜索了很多 并且我有相当不错的阅读理解能力 但我不明白这个脚本是否可以在我的 postgres postgis 盒子上的多个线程中工作 这是代码 Do do DECLARE x RECORD b int begin create