将PostgreSQL中所有表的所有记录中的所有空字符串设置为NULL

我想用空字符串更新PostgreSQL中所有表的所有列中的所有记录。有没有办法通过查询来实现这一点?或者至少是如何查询没有NOTNULL约束的所有列。访问如下信息模式 select * from information_schema.columns where is_nullable = 'YES'; 根据这些数据,您可以为所有表和列生成自己的update语句。将来,您可能希望对这些列施加约束,以防止它们成为空字符串。@StarShip3000这是从另一个数据库引入的数据。没有外键,没有任何

Postgresql 计算在触发器中更新之前受影响的行数

我想知道每个语句触发器之前的更新查询将影响的行数。可能吗 问题是我只允许更新最多4行的查询。如果受影响的行数为5或更多,我想引发错误 我不想在代码中这样做,因为我需要对db级别进行检查。 这有可能吗 提前感谢您提供有关这方面的任何线索我从未使用过postgresql,因此我的答案可能不适用。在SQL Server中,触发器可以调用存储过程,该过程将执行以下两项操作之一: 执行SELECT COUNT*以确定将受更新影响的记录数,然后仅在计数为4或更少时执行更新 在事务内执行更新,并且仅当返回的受

Postgresql Postgres:pg_restore/pg_转储表id以外的所有内容

目前我正在做一些类似的事情: pg_dump -a -O -t my_table my_db > my_data_to_import.sql 我真正想要的是能够只导入/导出数据,而不会与我的autoid字段发生冲突或覆盖现有数据 也许我把整个过程想错了 您可以与列列表一起使用,仅从一个表中转储和恢复数据。例如: COPY my_table (column1, column2, ...) TO 'yourdumpfilepath'; COPY my_table (column1, colu

Postgresql 如何组织postgres应用程序的参数

我正在申请博士后学位。目前,我不确定如何最好地管理应用程序常量参数。例如,我想定义一个阈值变量,我将在几个函数中使用它 一个想法是创建一个表“config”,并在每次需要时查询变量。对于快捷方式,将sql查询包装到另一个函数中,即:t:=get_Config('Threshold') 但事实上我并不是很幸运。处理自定义应用程序配置参数的最佳方法是什么?它们应该便于维护,我希望避免每次查询常量。例如,在oracle中,您可以将常量编译成包规范。有没有更好的方法来处理这些配置参数?我已经按照您描述的

Postgresql 需要关于创建绑定Postgres的Monomac应用程序的分步说明吗

通过查看稀疏的文档,我一直在努力解决这个问题,至少可以说这是一个相当艰难的过程。有没有人做过一个简单的教程,介绍如何使用Mono(大概是Monomac)创建一个OSX应用程序并绑定到Postgres数据库?要将PostgreSQL与Mono结合使用,您只需使用即可。要将PostgreSQL与Mono结合使用,您只需使用

缺少数据值的CSV PostgreSQL复制

我正在尝试使用COPY将CSV文件导入PostgreSQL。当它碰到有空值的行时会阻塞,例如下面的第二行: 01-2001,1,2,3,4,5 01-02-2001,6,7, 我尝试过这个COPY语句,以及使用NULL和QUOTE的变体,但没有找到任何有效的方法 从“data.dat”复制数据 使用分隔符“,”CSV 有什么建议吗?数据文件位于一个22GB的大平面文件中,因此我不想直接编辑它。我建议将数字列转换为文本列,以便导入。原因是空字符串不是有效的数值。将数字列更改为文本列,导入CSV文件

Postgresql 在postgres中意外关闭连接

我遇到了一个场景,我们意外地关闭了postgres连接,即使用连接池的jetty服务器。 因此,在我们的场景中,我们正在杀死jetty服务器,并发布Kill-9,因此连接池没有正确关闭,所以我的问题是,它会影响postgres数据库吗?它会导致postgres损坏吗。 或者,所有连接将自动关闭,正在运行的事务将回滚,而不会影响数据库。任何未提交的事务都将在断开连接时导致隐式回滚。这永远不会导致数据库损坏,回滚永远不会导致数据库损坏 使用kill-9会产生问题,但当您刚刚终止连接时,它不会损坏您的

在远程postgresql服务器上访问数据库时出现问题

我有一台postgresql(9.1.4)服务器运行在远程机器(Ubuntu 12.04)上,在本地机器上访问它时遇到问题。具体来说,在我的本地计算机上,我只能使用用户名“postgres”和数据库名“postgres”访问远程服务器,即使我有其他用户名和数据库。首先是一些背景资料。在远程机器上用“psql”调用交互环境时,我创建了另一个名为“mxtxdb”的用户,并为该用户设置密码。我还创建了一个名为“mxtxdb”的数据库。为了证明它们的存在,我登录到远程计算机并运行: sudo su po

Postgresql 未将ActiveRecord关联方法添加到模型中

我不得不围绕一个传统的PostgreSQL数据库构建一个rails应用程序,它不符合“rails方式”,因为多元化是不可能的——我不确定这是让我感到困惑的原因,还是让我感到困惑的原因是我已经离开rails好几个月了 根据Rails指南,当您在模型上声明属于时,将向该模型的每个实例添加四个方法。在指南示例中,在订单表中添加“属于”:customer可添加:customer、customer=、build_customer和create_customer 我在检查中没有看到这一点。我是做错了什么还是

postgresql中的复杂查询

大家好,向大家致以热烈的问候, 我在用posgresql编写复杂查询时遇到了一些挑战。事实上,我在编写这个特定的查询周期时遇到了问题,需要您的帮助。让我们开始吧 这是我的桌子 [products_tb] [client_tb] [sales_tb] +--------------+ +-------------+ +-------------+--------------+-----+ | product_name | | clie

Postgresql ise我将假设您使用的是当前版本,并进行相应的测试当前行和后面的无界行之间的行(我以前使用的是行编号)。。。因此,您可以删除它。Hi在执行查询时出错(顺便说一句:我使用的是postgre 8.4.1):错误:当前行的帧开始未实现第16行:窗口w为(按id_

ise我将假设您使用的是当前版本,并进行相应的测试当前行和后面的无界行之间的行(我以前使用的是行编号)。。。因此,您可以删除它。Hi在执行查询时出错(顺便说一句:我使用的是postgre 8.4.1):错误:当前行的帧开始未实现第16行:窗口w为(按id_根行在当前行之间划分…@qstorms好吧,这就是你没有在问题中指定你的版本所得到的结果,我恐怕:如果你不这样说,我将假设你在当前版本上,并进行相应的测试。当前行和无界行之间的行在最终版本的q中实际上没有必要uery(我以前用的是行号)…所以您

Postgresql 通过一组关键字在postgres中搜索的最佳方式

现在我有一个关键字数组,如: ['key1'、'key2'、'key3'…],关键字可以是数字或字符 如果我想在我的表(postgres数据库)中搜索,并发现所有记录都包含该数组中的任何关键字,我该如何做呢 例如: 我得到了一个表,它有一个名为name的列和一个名为description的列 我需要找到所有记录,无论是名称或描述包含在该数组中的任何关键字 谢谢 或数组语法: where name like any (array['%John%', '%Mary%']) 或数组语法: where

使用Laravel DB对象运行带有输入参数的postgresql函数

我有一些postgresql函数,我以以下形式运行: 从pgfunction(1,2,3)中选择* 这使我能够对结果进行筛选/排序/分组: 从pgfunction(1,2,3)中选择*,其中值>10 如何使用准备好的语句将参数传递给laravel中的postgresql函数,以便过滤laravel中的结果。例如: DB::table('pgfunction',array(1,2,3))->where('value','>','10'); 这可能吗?DB::raw将创建一个原始SQL

PostgreSQL XOR-如何检查是否只填写了1列?

如何在PostgreSQL中模拟XOR函数?或者,至少,我认为这是一种XOR类型的情况 假设数据如下所示: id | col1 | col2 | col3 ---+------+------+------ 1 | 1 | | 4 2 | | 5 | 4 3 | | 8 | 4 | 12 | 5 | 4 5 | | | 4 6 | 1 | | 7 | | 12 | 对于

Postgresql 如何返回分组用户id的最近值?

如何使结果只返回每个分组用户id的最后一个条目。下面的示例 此外,任何改进查询的方法都将受到高度赞赏属性是一个hstore列 SELECT user_id, json_agg(to_json(properties -> 'following') ORDER BY id DESC) AS followings, json_agg(to_json(properties -> 'assumed_gender') ORDER BY id DESC) AS assumed_genders, j

如何将数据从SQL Server导出到PostgreSQL?

我需要将所有表从SQL Server导出到PostgreSQL Try:我尝试使用SQL Server IDE,但在某些阶段,它给出的数据类型错误是不同的 问题:如何将数据从SQL Server导出到PostgreSQL?复制是我的工作吗?如果是,那么如何导出包括记录在内的所有表?首先将架构导出到一个文件中,并对PostgreSQL运行它,直到删除所有不兼容项 您可以尝试对要导出的数据执行相同的操作,但最好编写一个Python脚本将其迁移。您不能从MSsql导出数据,然后导入到PostgreSq

PostgreSQL/Redshift-阻止访问系统视图

我正在使用基于PostgreSQL的Redshift,需要创建一个仅限于特定数据库模式的用户。它们还需要被锁定在系统视图之外。我在数据库群集上运行了以下操作: revoke create on schema information_schema from public revoke usage on schema information_schema from public revoke create on schema pg_catalog from public revoke usage

Postgresql Postgres转义反斜杠的语法类似于

我有一个包含4行的表格,如下所示: Audit\\subfolder\System2.log Audit\\subfolder/System1.log Audit\\System2.log Audit\\System1.log 正在运行以下查询: 从文件位置类似的表中选择* “审计\\[^/]*” 将产生: Audit\\subfolder\System2.log Audit\\System2.log Audit\\System1.log 但是,正在运行以下查询: 从文件位置类似的表中选择*

Postgresql 使用WHERE子句从JSONB字段中选择

刚刚安装了9.4并尝试使用JSONB字段类型 我用jsonb字段创建了一个表,可以从中选择: select statistics->'statistics'->'all_trades'->'all'->'all_trades_perc_profit' as profitable_perc FROM trade_statistics 很好 现在我想根据字段值筛选结果: select statistics->'statistics'->'all_trades'

将PostgreSQL server错误消息的语言更改为英语

我的MS Windows系统是法语版本。我最近安装了PostgreSQL server。虽然pgAdmin是英文的,但我在PostgreSQL psql命令行中收到法文消息。您需要命名LC\u消息,并将其设置为English 如果您有访问$datadir\postgresql.conf的权限,请将lc\u消息参数更改为English\u-United.1252。您需要重新加载配置(重新启动服务器) 我的配置是: # These settings are initialized by initdb

Postgresql 为什么TXI会增加?

我有以下脚本: select txid_current(); 显示的txid为=001 begin; insert into tab values(10,20); insert into values(20,40); commit; 现在当我这样做的时候: 选择txid_current() txid见:004 为什么会增加2,即为什么txid会增加2,难道增量不应该只增加1,即txid应该是003,不应该选择txid_current()show 003 是否有办法将003显示为当前txid(

如何通过Docker更改PostgreSQL的装入点?

我想为postgres:latest创建一个docker,但让数据存储在主机上。我现在就是这样做的,但似乎不起作用。有什么想法吗 docker run --name name1 -e POSTGRES_PASSWORD=PASSWORD1 -e POSTGRES_USER=USER1 -e PGDATA=/my/local/path/postgresql -e POSTGRES_DB=DB1 -d -P postgres:latest 您需要使用-v host\u path:contiaine

在Postgresql中高效地存储具有多个前导零的十进制数

像这样的数字: 0.000000000000000000000000000000000000000123456 在postgres中使用可用的数字类型时,如果没有较大的性能损失,则很难存储。这解决了一个类似的问题,但我觉得这并不是一个可以接受的解决方案。目前,我的一位同事将这样的数字四舍五入到小数点后15位,并将其存储为: 0.000000000000001 因此,可以使用双精度数字类型,以防止与移动到十进制数字类型相关的惩罚。就我而言,这么小的数字在功能上或多或少是等效的,因为它们都非常小

使用PostgreSql和EntityFramework Core实现连接弹性的自定义执行策略

我在使用PostgreSql作为数据库的ASP.NETCore1.1应用程序上工作 EntityFrameworkCore1.1有一个看起来不错的连接弹性特性 我找到的所有文档都是针对MicrosoftSQLServer的,但我使用PostgreSql,并且我试图找出如何创建自己的自定义执行策略。 但是(再次)我没有找到任何文档 你知道怎么做吗 我需要恢复能力,因为我需要停止我的服务,而且通常,我的应用程序在数据库之前就准备好了。因此应用程序找不到数据库并崩溃

Postgresql 在pq中。数组无法传递值

我有以下代码: package main import ( "database/sql" "fmt" "github.com/lib/pq" ) const ( DB_USER = "<username>" DB_PASSWORD = "<password>" DB_NAME = "<db>" ) func main() { dbinfo := fmt.Sprintf("user=%

Docker容器在运行或重新启动PostgreSQL映像后立即退出

我是docker的乞丐,由于集装箱重启问题,我被困在原地。 当我尝试重新启动现有的已退出容器,或创建新容器(删除旧容器后)运行时出现问题: 我的容器总是立即退出,状态为“已退出(1)” 在我的容器日志中,我有: 但是,我现在没有任何PostgreSQL server在运行。您需要终止postmaster进程 cat…/postmaster.pid 此文件的第一个数字是postmaster进程的PID 然后,使用以下方法终止该进程: kill PID 最后,运行一个容器,您的问题应该得到解决。不

Postgresql 在docker容器中创建正在运行的Postgres服务

我对Docker有点陌生。 我有两个使用docker compose运行的容器。 一个是API,另一个是实际应用程序。 我想使用Postgres官方图像添加一个新的DB容器。 很难找到关于如何创建容器并使用预定义的sql文件(架构和数据)填充容器的简单教程。 当我在Dockerfile中以“CMD/etc/init.d/postgresql start”开头时,我收到一条错误信息:“不存在postgresql集群;请参阅“man pg_createcluster”…(警告)。” 因为我花了太多的

PostgreSQL函数,用于从URL提取HTTP查询参数

我想从一个表示URL的字符串中提取一个查询参数,并且我想在一个存储函数中这样做(我不可能使用一些标准函数?) 在Python中,这将是: from urlparse import urlparse, parse_qs def extract_oid(url): """ extract the 'oid' query argument (simplified, no error handling) >>> extract_oid('http:/

Postgresql-从500Gb数据库/自动吸尘器中大幅度删除?

我需要删除大约80%的500Gb Postgresql数据库。 到目前为止,我已经成功地为大约50Gb的行运行了delete命令,并在继续之前暂停。(这花了很长时间,也许一个小时) 我注意到,在删除了大约50Gb的数据后,不会释放额外的磁盘空间,但在运行“htop”时,可以观察到一些内存密集型的postgres进程。我假设这是死行,需要在释放磁盘空间之前清空这些死行,对吗 这个问题的第二部分是,如果我没有弄错第一部分,我是否最好删除所有行,然后允许自动真空发生?在我有机会继续我的行删除命令列表之

Postgresql Postgres是否获取旧版本的架构?

对于旧版本,如何在postgres中导出表的架构 我有一个系统10.0,但我需要导出一个9.2.23系统,在我的例子中,它会生成一个不兼容的命令 是否可以生成向下兼容的模式 pg_dump mydb -t 'mytable' --schema-only 此架构的输出为: -- -- PostgreSQL database dump -- -- Dumped from database version 10.0 -- Dumped by pg_dump version 10.0 SET st

在Google云SQL PostgreSQL实例上记录慢速查询

我工作的公司使用谷歌云SQL来管理生产中的SQL数据库 我们存在性能问题,我认为(除其他外)查看/监视高于特定阈值(例如250ms)的所有查询是一个好主意 通过查看我认为log\u min\u duration\u语句似乎是我需要的标志 log\u min\u duration\u语句(整数) 如果语句至少运行指定的毫秒数,则导致记录每个已完成语句的持续时间。将此设置为零将打印所有语句持续时间 但从Cloud SQL文档判断,我发现只能设置一组很窄的数据库标志(如针对每个DB实例),但从log\

用于插入枚举值的Postgresql/copy

假设我有一个枚举:创建类型foo作为枚举('a','b','c') 我的表格中有一列的类型为foo 假设我要插入一个.tsv文件,该文件的值分别为enum列的字符串“a”或“b”或“c”,那么最有效的方法是什么 我这里有大约9000万行,因此逐个插入它们可能会慢得多。Postgres提供了从文件导入数据的命令。如果文件中的字符串完全是作为枚举成员写入的,那么这应该是现成的 COPY elbat (nmuloc_1, ..., nmuloc_n) FRO

Postgresql Postgres:平均时间样本的集合

这是一个有点SQL代码高尔夫贴子 我有一个包含时间戳标识符和价格的表 CREATE TABLE IF NOT EXISTS ts_data ( ts TIMESTAMP WITHOUT TIME ZONE, --timestamp metric INTEGER, --identifier usd DOUBLE PRECISION -- price ); 鉴于样本数据: INSERT INTO ts_data (ts

PostgreSQL:创建生成的列

目标: 我的目标是创建一个名为paymentPrice的新列,它是receiptPrice、platformFee、deliverederfee的总和(需要显示当前值的总和) 通过阅读文档,我认为使用生成的列将是实现这一目标的最佳方式 语法: ALTER TABLE "orders" ADD "paymentPrice" FLOAT GENERATED ALWAYS AS (orders."receiptPrice" + orders."platformFee" + orders."

Postgresql ejabberd中缺少表pubsub_状态

我的ejabberd工作得很好,但我的日志中充满了对缺少的表pubsub_state的引用。我有很多其他的表都有这个前缀,但不是那个。我在哪里可以找到定义以便添加它 我正在使用PostgreSQL作为后端。定义在pg.sql中,但奇怪的是,它不是在您创建其他表时创建的。。。 就是这样。谢谢。当我在中添加定义时,我注意到有一个名为pubsu_state的空表。很奇怪。

Postgresql Postgres插入/删除触发器

我想知道是否有可能创建一个触发器,根据我的公共模式(public.tbl_media)中的tbl_media表中的insert或delete,在sde模式(sde.tbl_media)中的tbl_media表中插入或删除记录 我必须这样做的原因很长,但简而言之,我无法链接到ArcGIS中公共模式中的表。我需要保持该表处于活动状态,因为它正在联机接收输入…因此我基本上需要创建一个活动副本,以便在ArcGIS软件中链接到它。是的,可以在触发器中访问另一个模式的表(或任何对象)作为触发器函数或触发器所

Postgresql 使用物化视图更快地从大型表中检索数据

我们有一个表来存储用户登录日志,user\u login\u log。每次用户登录时,此表都会收到一条记录 我们有一个用例来获取每个用户的最后一次登录时间戳,这些数据将被频繁地获取。要求是这些数据应该快速加载 要求 数据应该快速加载 数据不应过时 日志表可以有成千上万条记录,因此每次查询它们都是一个缓慢的过程。我们提出了两种快速检索数据的方法 方法1:我们最初的想法是使用物化视图 这种方法的问题是,随着用户登录日志表中数据的增加,刷新物化视图的查询速度会变慢,从而导致插入、更新和删除操作变慢

Postgresql where子句中的类型化大小写

我正在应用程序中使用nestjs和typeorm。 我需要按货币和价格范围过滤产品 产品可以有不同的变体,每个变体可以有多个价格。每个价格都是价格和货币的组合 我的产品系列过滤器主数据如下 export const productPriceRangeMap: Map<string, number[]> = new Map([ ['PLN', [5, 30]], ['EUR', [2,10]], ]); for PLN currency, price ranges will b

Postgresql 在Kubernetes中部署的airflow中连接外部数据库

我正在尝试使用以下图表连接Kubernetes中部署的airflow中的外部PostgreSQL数据库: 我正在修改values.yml文件: #气流数据库配置 数据: #如果提供了秘密名称,请使用这些秘密 metadataSecretName:~ 结果BackEndSecretName:~ #否则,在中传递连接值 元数据连接: 用户: 通过: 主持人: 港口:5432 db:气流 sslmode:需要 结果BackEndConnection: 用户: 通过: 主持人: 港口:5432 db:气

是否可以在POSTGRESQL中使用OUT/INOUT参数和返回refcursor?

下面是一个示例片段。我尝试使用INOUT参数,同时尝试返回refcursor CREATE OR REPLACE FUNCTION reffunc2(IN key int, INOUT name int) RETURNS refcursor AS $$ DECLARE ref refcursor; BEGIN name = 123; OPEN ref FOR SELECT col FROM test; RETURN ref; END; $$ LANGUAGE plpgsql; 指定OUT

Postgresql Postgres跨列的多个值的唯一约束

我的一张表中有一个棘手的唯一性要求 假设我们有一桌狗。狗住在房子里 CREATE TABLE dogs ( dog_id integer, house_id integer, dogname varchar } 狗的名字在房子里必须是唯一的。还有一个“主要”的房子,没有狗可以有一个名字是相同的狗在主要的房子 例如,其中house_id 0是“主”房屋: 如何创建对此建模的唯一性约束 我在想有一种方法可以在有约束的情况下实现,但我还没有弄清楚如何实现 我更愿意使用约束而不是触发器来执

Postgresql 注册/登录页面在localhost中工作,但在Heroku上我收到一个应用程序错误(h12/503)

我能够以用户身份注册并在本地主机上以用户身份成功登录,但在Heroku上我收到一个应用程序错误。请求似乎是超时问题(H12/503错误)。我很困惑,因为大约一个月前登录和注册工作正常。我从项目中休息了一下,那时Heroku已经成功部署并正在工作。现在我在Heroku上遇到了问题,不知道如何解决这个问题,也不知道是什么原因导致了这个问题 这是我的heroku日志- 2021-04-13T03:30:27.742004+00:00 heroku[路由器]:at=error code=H12 desc

Postgresql Asp.NETCore3.1

当我运行“dotnet aspnet codegenerator controller-name EmployeeController-m Employee-dc AppDbContext--relativeFolderPath Controllers--useDefaultLayout--referenceScriptLibraries”时 创建控制器的步骤 AppDbContext是数据库上下文名称 Employee是类名 我得到的代码错误如下 搭建脚手架失败了。 无法获取[dir_name

Postgresql 如何将值设置为序列?

如何在plpgsql中将值设置为序列 这在plpgsql中失败 您可以这样做,想象public.student\u id是已经存在的序列的名称: select setval('public.student_id',max(student_id)) from public.student; 您所要做的就是将子查询用括号括起来。这在语法上是必需的。@LaurenzAlbe,您是对的,可以使用子查询。正如您在回答中指出的,它只需要用括号括起来,因此:选择setval'public.student_i

Postgresql 最终有轨电车传奇配器设计模式

在使用postgresql 9.6数据库使用最终saga orchestrator模式实现微服务时,我们将遇到以下问题 org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback;SQL的未分类SQLException[选择 表名称所在的eventiate.information\u schema.columns中的数据类型= ?和列_name=?];SQL状态[0A000];错误代码[0];错误:

Postgresql 如何在SQL中编写具有独占属性的查询?

使用SELECT COUNT和BETWEEN运算符,我还需要排除两个整数 SELECT COUNT(*) FROM purchases WHERE user_id BETWEEN 10 AND 50 我需要排除20和30。我试过使用NOT、NOT IN和NULL。我缺少什么?只需添加另一个条件: SELECT COUNT(*) FROM purchases WHERE user_id BETWEEN 10 AND 50 AND user_id NOT IN (20,30); 添加“和用户

Postgresql停止启动问题/bin/sh:第0行:执行代码:5433:未找到

我不得不停止postgresql服务,因为测试服务器中存在uniq问题和太多连接问题。在停止服务器后,我尝试使用下面的命令再次启动它 pg_ctl-p 5433-D/storage/pgsql/11/data/start /bin/sh:第0行:执行代码:5433:未找到 然后我厌倦了各种启动命令 pg_ctl-o“-p 5433”-D/storage/pgsql/11/data/start 这次: 日志:文件“/storage/pgsql/11/data/postgresql.conf”第13

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