Postgresql Postgres中的AFTER触发器是否会阻止插入/更新?

如果我在PostgreSQL中设置了一个AFTER触发器,以便在插入/更新后触发,那么调用软件在将控制权返回给调用软件之前是否必须等待触发器完成?或者触发器会在幕后自行运行吗?是的,因为它是在同一事务中执行的。如果触发器失败,插入/更新也将失败。只要执行一个将失败的查询(选择一个不存在的表)进行测试,您就可以看到事情是如何工作的以及应用程序将如何运行 CREATE OR REPLACE FUNCTION foo() RETURNS TRIGGER AS $$ BEGIN EXECUTE 'S

PostgreSQL中的行编号

当结果按某列排序时,如何在PostgreSQL中获取行号 e、 g 我假设查询将返回如下列表: position | name | salary 31 | Joy | 4500 32 | Katie| 4000 33 | Frank| 3500 实际上,我必须将ORDER子句复制到查询中以使其正常工作: SELECT 30+row_number(ORDER BY salary DESC) AS position, * FROM users ORDER

PostgreSQL,函数使用?

我有这样的功能: CREATE OR REPLACE FUNCTION f_insert_account(usernames character varying, passwds character varying, identitass integer, jeniss smallint, statuss smallint, cnames character varying, unames character varying) RETURNS character varying AS $B

Postgresql:插入到列时(或之前)自动小写文本

我希望在varchar列中实现不区分大小写的唯一性。但是,Postgres中没有不区分大小写的文本数据类型。由于文本的原始大小写并不重要,在插入具有唯一约束的列之前,最好将所有文本转换为小写/大写。此外,它还需要一个索引来进行快速搜索 在Postgres中有没有办法在插入数据之前对数据进行操作 我看了另一个问题:。 它建议在插入/更新小写文本时使用触发器,或者使用带有小写文本的视图。但是,所有建议的方法都不能确保唯一性 此外,由于这些数据将由各种应用程序读取/写入,因此在每个应用程序中使用小写数

无时区的PostgreSQL alter type时间戳->;时区

问题很简单:如果我已经在没有时区的列类型timestamp中有数据,如果我将类型设置为timestamp with time zone,postgresql将如何处理此数据?它将当前值保留在localtime中,并将时区设置为您的localtime偏移量: create table a(t timestamp without time zone, t2 timestamp with time zone); insert into a(t) values ('2012-03-01'::timest

Postgresql pgagent从另一个作业运行作业

我在pgagent中有4个作业,我想从一个主作业按特定顺序执行。我该怎么做呢?如果我是对的,它们是按字母顺序排列的。这就是。您没有得到它的情况。我想知道如何从另一个作业的步骤触发作业

Postgresql 通过原始plpgsql中的UPDATE语句获取受影响的行

这已经被问了很多次,但没有一个答案适合我的情况,因为我不想在PL/PgSQL函数中执行update语句并使用GET DIAGNOSTICS integer\u var=ROW\u COUNT 我必须在原始SQL中执行此操作 例如,在MS SQL SERVER中,我们有@ROWCOUNT,它可以像下面那样使用: UPDATE <target_table> SET Proprerty0 = Value0 WHERE <predicate>; SELECT <compu

Postgresql 我应该使用碎片吗?

我在寻求建议。我从未使用过切分,但最近读到了一些关于切分的文章,我怀疑它应该对我在数据库中的长时间执行查询(PostgreSQL 9.1)有所帮助 描述 我有2亿行的表posts 每个帖子都有项目表的外键 每个项目在posts表中有100到300000行(平均值:30000) 通常我在posts表上执行queuries,并在projects\u id外键上连接projects表 我很少对其他表中的页面执行join 对于页面行数>100000的项目,我的查询(检索在给定时间段内添加的帖子和聚合

Postgresql 将函数的文本输出用作新查询

在@Erwin Brandstetter和@Craig Ringer的帮助下,我将代码修改为如下。请注意,我的函数myresult()现在输出的是text,而不是一个表(正如前一种情况所指出的那样,输出表对象毫无意义,因为我们需要在前面定义它的所有列,这基本上违背了整个目的): 电话: 运行上述过程后,我得到一个文本字符串,它基本上是一个查询。为了简单起见,我接下来将其称为“一行输出”。 “一行输出”如下所示(我只是从这里的一个输出单元格复制/粘贴它): 请注意,语句两边的双引号是myresu

Postgresql 存储在postgres数据库中的时间序列图表有哪些选项

我有一个postgres数据库,其中包含大量的时间序列指标 不同的操作员对不同的信息感兴趣,我想提供一个界面,在这里他们可以绘制数据图表,进行比较,还可以选择将数据导出为csv 到目前为止,我遇到的两种解决方案是,和,但这两种解决方案都将您束缚在存储引擎上,并且都不支持postgres 我正在寻找的是一个类似于grafana的界面,但它允许我连接任何我想要的后端。有没有类似于grafana的工具,可以让你连接任何你想要的后端(甚至只是postgres) 请注意,我收集的数据是高度敏感的,并且是应

Postgresql PL/pgSQL语法错误:42601

我对pl/pgsql非常陌生,我有一个问题:我正在尝试创建一个函数,该函数将基于以下中的pensja计算税收: create table pracownicy ( id_pracownika int unique , imie varchar(20) , nazwisko varchar(20) , miasto varchar(20) , pensja real); insert into pracownicy values (1, 'John', 'Smith', 'New Yor

postgreSQL 9.1.18版本安装

我下载了PostgreSQL 9.1.18版本,我有windows 32位。我第一次尝试在我的计算机上安装这个数据库,所以,当我在最后一步开始安装PostgreSQL 9.1.18时,它显示了我的错误 在安装之前,我在c驱动器中创建了一个名为PostgreSQL的文件夹,然后转到“安全”选项卡,添加了帐户PostgreSQL并给予完全控制权。当我安装PostgreSQL 9.1.18时,我选择了这个文件夹,但最后还是发生了相同的错误 错误 “运行安装后安装程序时出现问题。安装可能未正确完成。数据

Postgresql:仅当数据发生更改时,才在更新后为每条语句运行触发器

在Postgresql中,我可以有两种触发器:针对每一行和针对每一条语句。如果我对每行执行一个FOR触发器,我可以添加一个WHERE子句,类似于OLD.*=新建。*,因此只有在实际发生更改时才会触发。有没有任何方法可以使用语句级触发器执行类似的操作?我知道我不能做同样的事情,因为旧的和新的都不可用,但我在想也许有一种方法可以检查从函数本身或类似内容中更改的行数 用例:我正在使用postgresql NOTIFY系统在数据更改时通知我的应用程序。理想情况下,每次一个或多个记录发生更改时,应用程序都

PostgreSQL连接问题-丢弃空闲连接

简要背景: 我们有一个基于云的仓库管理系统,它使用Glassfish提供java接口。仓库管理系统由一个仪表板和一个移动应用程序组成,两者都与Glassfish服务器(使用web浏览器)保持通信 问题: 最近我们的PostgreSQL数据库服务器硬盘出现故障。从备份恢复并将数据库移动到AmazonWeb服务服务器后,空闲连接似乎正在断开。这会导致整个仓库管理系统出现故障。重新启动Glassfish服务器似乎可以解决此问题,直到空闲连接导致其再次失败 大约20分钟的空闲活动后,即客户的午休时间、下

PostgreSQL根据用户输入计算加权平均值

我有一个分数表,列出了每部电影和评论家的分数,评论家给那部电影的分数:(电影id,评论家id,分数)。我通过以下PostgreSQL查询,在给定的一系列评论家中找到平均得分最高的10部电影: SELECT f_id, avg(f_score) FROM ( SELECT s.film_id as f_id, s.critic_id as c_id, s.score as f_score FROM

Postgresql 基于字段生成序列

我有一个Postgres表(9.3),其中有一个名为a.locations的字段。我想生成一个临时表,其中包含相同的序列号,但具有相同序列号的相似位置。为了让事情更清楚,我的当前表(仅示例): 我需要的是: ID | Locations 1 | Bangalore 1 | Bangalore 2 | London 3 | New York 3

无法打开到PostgreSQL的连接

我有一些SQL脚本要使用PowerShell对PostgreSQL实例运行。 我已经安装了PSQL9.5和ODBC驱动程序。我还将其添加到DSN列表中 名称:PostgreSQL35W 驱动程序:PostgreSQL Unicode(x64) 在PowerShell中,我有下一个代码块 $DBConnectionString = "Driver={PostgreSQL Unicode(x64)};Server=$dbServer;Port=5432;Uid=$dbUser;Pwd=$dbPass

Postgresql 使用sails.js支持Postgres ltree

我试图使用sails.js构建一个项目,但遇到了问题,我想修补传递给waterline postgres适配器的“类型”,以便使用postgres类型 我有一个当前postgres适配器的分支,当我更改对类型的waterline支持以包括ltree时,适配器工作 这是postgres适配器的分叉 下面是我想修改的代码: module.exports = [ 'string', 'text', 'integer', 'float', 'date', 'time',

Postgresql heroku pg:psql什么都不做

我正在尝试创建我的数据库,但我无法获得heroku pg:psql,并且什么也没有发生。当我尝试使用heroku pg:psql数据库_URL时,也没有发生任何事情。不知道为什么。 最近刚刚回答了同样适用于您案例的类似问题–我已经看到了这一点。如果你看我的图片,它没有给我这些错误的权利,误读错误信息。这是Ruby错误,不完全是Heroku。但由于Heroku Toolbelt是建立在Ruby之上的,所以它使用它。关于Ruby问题,这里似乎有相同的错误经验:最近刚刚回答了同样适用于您案例的类似问题

将包含大量列的大型csv导入postgreSQL

我有一个2550列的csv文件,我想把它导入postgreSQL 为了在postgreSQL中导入csv,首先我应该创建表,并使用\copy将csv复制到表中。但是,如果表中有大量的列,比如我的案例,我无法手动创建表,该怎么办呢 有解决办法吗 更新 数据结构如下: dZ(01)到dZ(2550)基本上在-50到+50之间: id | date | time | localtime | pid | dZ(0)..dZ(1)......dZ(2550)| ---|---------|

PostgreSQL:ERROR:语法错误位于或接近;清晰的;

我使用psql连接到终端上的PostgreSQL数据库。如果我运行一个简单的select查询 select count(*) from my_schema.my_table; 我得到一个错误: 错误:“清除”处或附近出现语法错误 第1行:清除 更新: 我甚至无法从my_schema.my_表执行简单的select查询,如select*或从my_表中选择*。它给了我一个错误: ERROR: relation "my_table" does not exist LINE 1: select *

Postgresql 函数,用于根据包含约束信息的表生成查询,以便在删除后恢复约束

我必须删除Postgres数据库中的所有约束,以更新PKs和FKs使用的数据类型。在此之前,我希望确保在更新后可以重建这些约束。首先,我执行以下代码以获取一个表,其中包含三列table\u from、conname和pg\u get\u constraintdef,其中包含所有约束信息 select conrelid::regclass AS table_from, conname, pg_get_constraintdef(c.oid) from pg_constraint c join

Postgresql-如何在函数中设置变量值

我试图根据case语句设置变量的值,并在Postgres函数中以表的形式返回数据 在case语句中,我试图对选项进行位运算 场 这是行不通的。谁能告诉我这有什么不对吗 它显示以下错误 错误:查询的结构与函数结果类型详细信息不匹配: 返回的类型布尔值与第2列中的预期类型文本不匹配。 上下文:PL/pgSQL函数get_ticket_types()返回查询时的第7行 **********错误********** 创建一个文本函数以从选项中获取连接的类型名称: create or replace fu

将PostgreSQL数据库上载到AWS

我有一个PostgreSQL数据库。如何将其迁移到Amazon Web服务RDS 我不知道怎么做。是否在AWS上使用数据库迁移服务 您可以使用AWS数据库迁移服务,但如果您从PostgreSQL迁移到PostgreSQL,这似乎有些过分。数据库迁移服务允许在不同的RDBMS之间,甚至在NoSQL数据库和RDBMS之间进行数据迁移 只需使用pg_dump转储您的数据库,并使用pg_restore将其还原到RDS实例,您就可以使用AWS数据库迁移服务,但如果您从PostgreSQL迁移到Postgr

Postgresql 使用';主动';pg_统计_活动中的流程?

我试图测量生活在同一个Postgres服务器上的各种数据库所承受的负载,以确定如何在多个服务器上最好地分割它们。我设计了这个问题: select now() as now, datname as database, usename as user, count(*) as processes from pg_stat_activity where state = 'active' and waiting = 'f' and query not like '%from pg_stat_

Postgresql 如何计算文本的真实SHA1?

如中所示(请参见此处的详细信息),我正在使用 SELECT encode(digest(x::text::bytea, 'sha1'), 'hex') FROM xtmp; 没有解决,是不是和原来的一样。。。也许::text强制使用\n符号进行内部表示,因此解决方案将直接强制转换为bytea,但这是无效的强制转换 另一个解决方法也不是解决方案 SELECT encode(digest( replace(x::text,'\n',E'\n')::bytea, 'sha1' ), 'hex')

Postgresql JDBC的美元报价失败

我必须用PLPGSQL编写一个函数,但我对函数体使用美元报价有问题。使用第一个教程: CREATE FUNCTION inc(val integer) RETURNS integer AS $BODY$ BEGIN RETURN val + 1; END; $BODY$ LANGUAGE PLPGSQL; 我得到一个错误: 位于或接近的未终止美元报价字符串$$ 在google上搜索时,我发现这是一个JDBC驱动程序问题,但我无法更新它。 因此,我尝试更改分隔符以删除$$: DEL

如何使用PostgreSQL从备份创建数据库?

在SQL Server中,我可以从另一个框中的备份在服务器上创建新数据库。我似乎在pgAdmin4和PostgreSQL10中找不到该功能。看起来我所能做的就是恢复现有的数据库。我需要先创建一个空白数据库吗?您可以在pg\u dump函数中使用-create或-C来创建数据库。发件人: 使用命令开始输出,以创建数据库本身并 重新连接到创建的数据库。(有了这种形式的脚本 在目标安装中安装哪个数据库并不重要 在运行脚本之前连接到。) 对于语法: pg_dump -C -U your_user -d

Postgresql Gorm仅在条目不存在时创建

我有以下结构: type Project struct { gorm.Model Title string Description string Skills []Skill `gorm:"many2many:project_skills;"` } type Skill struct { gorm.Model Name string } 这就是我创建项目的方式(然后Gorm自动创建技能): 通过gorm有一种简单的方法,只

PostgreSQL-当前_设置的默认值

这就是我在PostgreSQL中访问变量的方式 select CURRENT_SETTING('abc.var1') 如果变量不存在,是否有一种最佳方法可以获取默认值,即0,而不是接收错误?使用该函数的两个参数版本(如果变量丢失,可以防止出现错误),然后使用coalesce(): 使用该函数的两个参数版本(如果缺少变量,可防止出现错误),然后使用coalesce(): 例如: select coalesce(current_setting('abc.var1', true), '0');

Postgresql 创建扩展名postgis出现错误:无法打开扩展名控制文件/opt/pgpro/std-11/share/extension/postgis.control“;

ubuntu服务器16.04 postgres Pro标准11.5() postgis 2.5 更新:我找到了答案,见下文 Posgis已成功安装在Postgresql的扩展目录中(usr/share/Postgresql/11/extension),当然,PostgrePro(扩展文件夹为opt/pgpro/std/-11/share/extension)找不到文件postgis.control 那么,我的问题是: 1) 我可以将postgresql.conf(postgres pro的配置文

Postgresql POSTGRES检查数组类型的列中是否存在提供的值

我试图检查列中是否存在类型为array(column_name text[])的值。 作为一个服务器,我正在使用hapi,并试图通过查询从hapi检查相同的内容 我编写的查询是(查询不起作用): 该列包含以下值: {1234, 3456} 这些值为文本类型 有人能帮我确定这个问题吗 提前感谢。Sequelize不支持使用任何,它们似乎只支持在中使用。 相反,您应该尝试contains操作符(@>): 这将产生类似于 SELECT * FROM "MyModel" WHERE column_na

Postgresql 带筛选条件的本机查询

我们正在尝试使用过滤器实现搜索。我们的请求机构是 { “channelId”:3 }它给出了通道ID为3的记录。但是当我试图传递一个空的请求体,{}以获取所有没有任何条件的记录时,spring启动抛出错误。代码中有这样一行代码 Long channelId= channelRequest.getChannelId() != null ? channelRequest.getChannelId():null; 在存储库中我们有这个 @Query(nativeQuery = true,value

Postgresql 从数据库中重新创建SQL命令

很久以前,我使用django创建了一个db。现在我们正在迁移应用程序,因此我需要django可能已经运行的所有CREATE TABLEsql查询来为我们的服务创建整个数据库(它有大约70-80个表,每个表有平均30-70列) 新旧服务器都使用Postgres作为数据库 但技术堆栈与django完全不同(第三方专有应用程序将承载该服务),而不是django 如果我从头开始写所有的表格,至少需要一到两周的时间 Postgres或django是否有任何方法可以为整个数据库生成CREATE TABLEs

Postgresql 启动Postgres docker映像时,会执行initdb.d中的SQL,但不会创建db/schema/table

我正在通过dokcer compose启动postgresql 12.3映像 我扩展了映像,以便在启动时执行简单的SQL(创建模式、表)。 从日志中,我可以看到执行了SQL命令,但当我登录到DB时,更改丢失了 我的Dockerfile: FROM postgres ENV INITDB_DIR /docker-entrypoint-initdb.d ENV POSTGRES_PASSWORD=... ENV POSTGRES_DB mydb COPY initdb.d ${INITDB_DI

Postgresql 在postgres中分组时旋转

我一直在postgres中使用交叉表来透视表,但现在需要添加一个分组,我不确定这是否可行 我从这样的结果开始: Date Account# Type Count ----------------------------------------- 2020/1/1 100 Red 5 2020/1/1 100 Blue 3 2020/1/1 100 Yel

Postgresql 在debian10 arm64上编译timescaledb源代码

我已经在raspberry PI 4上安装了debian10,并且安装了PostgreSql 12.4,因为ARM64没有timescaledb的安装包,所以我想通过编译源代码来安装timescaledb。现在我们遇到了一些问题 1、从github克隆代码 1, git clone https://github.com/timescale/timescaledb.git 错误如下 CMake Error at CMakeLists.txt:334 (message): Could not

Postgresql 无法将Dockers容器上的Postgre与Talend连接

我正在尝试将linux容器上托管的Postgre DB连接到我的windows主机上的Talend ETL工具,但无法连接 好吧,我已经尝试了各种连接方式,docker也检查了[容器]以验证IP地址 请提供帮助。99%的情况下,超时是由防火墙阻止通信引起的。您需要打开端口5432的网络路径。这不是PostgreSQL问题。我已禁用防火墙,但仍然存在相同的问题。@HassaanAbedi我不熟悉您的基础结构,但它并不总是DB主机的防火墙。欢迎您进一步解释您的网络拓扑。

如何在PostgreSQL中获取表上每小时插入的计数

我需要一个设置,将超过60天的行从PostgreSQL表中删除 我创建了一个函数和一个触发器: BEGIN DELETE FROM table WHERE updateDate < NOW() - INTERVAL '60 days'; RETURN NULL; END; $$; 开始 从表中删除 其中updateDate

Postgresql 如何使用表B中的条件从表A中选择计数

首先,道歉如果标题没有多大意义,我无法在标题中正确描述它,我的道歉 我有4个表:工作、任务、员工和状态。每个作业都有任务(复数),每个任务都有一组将执行任务的员工 我想要输出的是一个员工列表和他们已经完成的工作的数量,以及“状态”来检查工作是否已在jobs表中完成 以下是我的预期结果: Employee Name |已完成作业 鲍勃| 3 安迪| 2 卡尔| 1 我附上了一把db小提琴来帮助说明我的问题: 我一直在读关于外部联接的书,但无法使其工作。 希望你能帮我想出如何执行这个,谢谢 要获

Postgresql Flink Sql Postgres批插入失败

我们有多个flink sql作业将数据写入postgres,在任务管理器日志中我们看到此错误-- 错误org.apache.flink.connector.jdbc.internal.jdbccbatchingoutputformat[]-jdbc executeBatch错误,重试次数=0 java.sql.BatchUpdateException:批处理条目0被中止:发送到后端时发生I/O错误。调用getNextException查看批处理中的其他错误。 原因:org.postgresql.

如何在PostgreSQL中手动将.png或.jpeg文件插入bytea列?

我目前正在Windows 10上使用PostgreSQL 4.38,我试图在PostgreSQL的bytea列中手动插入一个图像(.png文件),但在执行数据时,它表示bytea类型的输入语法无效。在PostgreSQL的bytea列中手动插入图像的正确步骤应该是什么 我得到的错误是 错误:bytea类型的输入语法无效 第3行:…yn',Lyn',123456',234567','lone@gmail.com“,”D:\Minton。。。 ^ SQL状态:22P02 字符:373 问题已解决:)

如果在单个请求中与Oracle和PostgreSql交互以处理超过200000条记录,如何提高EF核心性能

我有一个.Net核心Web API端点,它从OracleDB提取数据并将其保存到PostgreSQL数据库中。我正在使用最新的实体框架core和Oracle.ManagedDataAccess.core以及Npgsql.EntityFrameworkCore.PostgreSQL连接到各自的数据库 在API用于连接下层的服务层内部,我有单独的方法可调用: 调用OracleRepository-以便从5个表中提取记录(每个表位于存储库中的diff方法中): 获取表A数据 获取表B数据。。以此类推,

  1    2   3   4   5   6  ... 下一页 最后一页 共 519 页