我想用空字符串更新PostgreSQL中所有表的所有列中的所有记录。有没有办法通过查询来实现这一点?或者至少是如何查询没有NOTNULL约束的所有列。访问如下信息模式
select *
from information_schema.columns
where is_nullable = 'YES';
根据这些数据,您可以为所有表和列生成自己的update语句。将来,您可能希望对这些列施加约束,以防止它们成为空字符串。@StarShip3000这是从另一个数据库引入的数据。没有外键,没有任何
我想知道每个语句触发器之前的更新查询将影响的行数。可能吗
问题是我只允许更新最多4行的查询。如果受影响的行数为5或更多,我想引发错误
我不想在代码中这样做,因为我需要对db级别进行检查。
这有可能吗
提前感谢您提供有关这方面的任何线索我从未使用过postgresql,因此我的答案可能不适用。在SQL Server中,触发器可以调用存储过程,该过程将执行以下两项操作之一:
执行SELECT COUNT*以确定将受更新影响的记录数,然后仅在计数为4或更少时执行更新
在事务内执行更新,并且仅当返回的受
目前我正在做一些类似的事情:
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
我正在申请博士后学位。目前,我不确定如何最好地管理应用程序常量参数。例如,我想定义一个阈值变量,我将在几个函数中使用它
一个想法是创建一个表“config”,并在每次需要时查询变量。对于快捷方式,将sql查询包装到另一个函数中,即:t:=get_Config('Threshold')
但事实上我并不是很幸运。处理自定义应用程序配置参数的最佳方法是什么?它们应该便于维护,我希望避免每次查询常量。例如,在oracle中,您可以将常量编译成包规范。有没有更好的方法来处理这些配置参数?我已经按照您描述的
通过查看稀疏的文档,我一直在努力解决这个问题,至少可以说这是一个相当艰难的过程。有没有人做过一个简单的教程,介绍如何使用Mono(大概是Monomac)创建一个OSX应用程序并绑定到Postgres数据库?要将PostgreSQL与Mono结合使用,您只需使用即可。要将PostgreSQL与Mono结合使用,您只需使用
我正在尝试使用COPY将CSV文件导入PostgreSQL。当它碰到有空值的行时会阻塞,例如下面的第二行:
01-2001,1,2,3,4,5
01-02-2001,6,7,
我尝试过这个COPY语句,以及使用NULL和QUOTE的变体,但没有找到任何有效的方法
从“data.dat”复制数据
使用分隔符“,”CSV
有什么建议吗?数据文件位于一个22GB的大平面文件中,因此我不想直接编辑它。我建议将数字列转换为文本列,以便导入。原因是空字符串不是有效的数值。将数字列更改为文本列,导入CSV文件
我遇到了一个场景,我们意外地关闭了postgres连接,即使用连接池的jetty服务器。
因此,在我们的场景中,我们正在杀死jetty服务器,并发布Kill-9,因此连接池没有正确关闭,所以我的问题是,它会影响postgres数据库吗?它会导致postgres损坏吗。
或者,所有连接将自动关闭,正在运行的事务将回滚,而不会影响数据库。任何未提交的事务都将在断开连接时导致隐式回滚。这永远不会导致数据库损坏,回滚永远不会导致数据库损坏
使用kill-9会产生问题,但当您刚刚终止连接时,它不会损坏您的
我有一台postgresql(9.1.4)服务器运行在远程机器(Ubuntu 12.04)上,在本地机器上访问它时遇到问题。具体来说,在我的本地计算机上,我只能使用用户名“postgres”和数据库名“postgres”访问远程服务器,即使我有其他用户名和数据库。首先是一些背景资料。在远程机器上用“psql”调用交互环境时,我创建了另一个名为“mxtxdb”的用户,并为该用户设置密码。我还创建了一个名为“mxtxdb”的数据库。为了证明它们的存在,我登录到远程计算机并运行:
sudo su po
我不得不围绕一个传统的PostgreSQL数据库构建一个rails应用程序,它不符合“rails方式”,因为多元化是不可能的——我不确定这是让我感到困惑的原因,还是让我感到困惑的原因是我已经离开rails好几个月了
根据Rails指南,当您在模型上声明属于时,将向该模型的每个实例添加四个方法。在指南示例中,在订单表中添加“属于”:customer可添加:customer、customer=、build_customer和create_customer
我在检查中没有看到这一点。我是做错了什么还是
大家好,向大家致以热烈的问候,
我在用posgresql编写复杂查询时遇到了一些挑战。事实上,我在编写这个特定的查询周期时遇到了问题,需要您的帮助。让我们开始吧
这是我的桌子
[products_tb] [client_tb] [sales_tb]
+--------------+ +-------------+ +-------------+--------------+-----+
| product_name | | clie
ise我将假设您使用的是当前版本,并进行相应的测试当前行和后面的无界行之间的行(我以前使用的是行编号)。。。因此,您可以删除它。Hi在执行查询时出错(顺便说一句:我使用的是postgre 8.4.1):错误:当前行的帧开始未实现第16行:窗口w为(按id_根行在当前行之间划分…@qstorms好吧,这就是你没有在问题中指定你的版本所得到的结果,我恐怕:如果你不这样说,我将假设你在当前版本上,并进行相应的测试。当前行和无界行之间的行在最终版本的q中实际上没有必要uery(我以前用的是行号)…所以您
现在我有一个关键字数组,如:
['key1'、'key2'、'key3'…],关键字可以是数字或字符
如果我想在我的表(postgres数据库)中搜索,并发现所有记录都包含该数组中的任何关键字,我该如何做呢
例如:
我得到了一个表,它有一个名为name的列和一个名为description的列
我需要找到所有记录,无论是名称或描述包含在该数组中的任何关键字
谢谢
或数组语法:
where name like any (array['%John%', '%Mary%'])
或数组语法:
where
我有一些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函数?或者,至少,我认为这是一种XOR类型的情况
假设数据如下所示:
id | col1 | col2 | col3
---+------+------+------
1 | 1 | | 4
2 | | 5 | 4
3 | | 8 |
4 | 12 | 5 | 4
5 | | | 4
6 | 1 | |
7 | | 12 |
对于
如何使结果只返回每个分组用户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
Try:我尝试使用SQL Server IDE,但在某些阶段,它给出的数据类型错误是不同的
问题:如何将数据从SQL Server导出到PostgreSQL?复制是我的工作吗?如果是,那么如何导出包括记录在内的所有表?首先将架构导出到一个文件中,并对PostgreSQL运行它,直到删除所有不兼容项
您可以尝试对要导出的数据执行相同的操作,但最好编写一个Python脚本将其迁移。您不能从MSsql导出数据,然后导入到PostgreSq
我正在使用基于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
我有一个包含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
但是,正在运行以下查询:
从文件位置类似的表中选择*
刚刚安装了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'
我的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
我有以下脚本:
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(
我想为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
像这样的数字:
0.000000000000000000000000000000000000000123456
在postgres中使用可用的数字类型时,如果没有较大的性能损失,则很难存储。这解决了一个类似的问题,但我觉得这并不是一个可以接受的解决方案。目前,我的一位同事将这样的数字四舍五入到小数点后15位,并将其存储为:
0.000000000000001
因此,可以使用双精度数字类型,以防止与移动到十进制数字类型相关的惩罚。就我而言,这么小的数字在功能上或多或少是等效的,因为它们都非常小
我在使用PostgreSql作为数据库的ASP.NETCore1.1应用程序上工作
EntityFrameworkCore1.1有一个看起来不错的连接弹性特性
我找到的所有文档都是针对MicrosoftSQLServer的,但我使用PostgreSql,并且我试图找出如何创建自己的自定义执行策略。
但是(再次)我没有找到任何文档
你知道怎么做吗
我需要恢复能力,因为我需要停止我的服务,而且通常,我的应用程序在数据库之前就准备好了。因此应用程序找不到数据库并崩溃
我有以下代码:
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的乞丐,由于集装箱重启问题,我被困在原地。
当我尝试重新启动现有的已退出容器,或创建新容器(删除旧容器后)运行时出现问题:
我的容器总是立即退出,状态为“已退出(1)”
在我的容器日志中,我有:
但是,我现在没有任何PostgreSQL server在运行。您需要终止postmaster进程
cat…/postmaster.pid
此文件的第一个数字是postmaster进程的PID
然后,使用以下方法终止该进程:
kill PID
最后,运行一个容器,您的问题应该得到解决。不
我对Docker有点陌生。
我有两个使用docker compose运行的容器。
一个是API,另一个是实际应用程序。
我想使用Postgres官方图像添加一个新的DB容器。
很难找到关于如何创建容器并使用预定义的sql文件(架构和数据)填充容器的简单教程。
当我在Dockerfile中以“CMD/etc/init.d/postgresql start”开头时,我收到一条错误信息:“不存在postgresql集群;请参阅“man pg_createcluster”…(警告)。”
因为我花了太多的
我有一个维度,我声明它叫做mystay_days_before_,我创建了一个层来对这些信息进行分组。当我查询超过19天的结果时,查询崩溃
dimension: mystay_days_before_stay {
label: "Days before Stay"
view_label: "MyStay"
type: number
sql: cast(${TABLE}.properties ->> 'days_before_stay' as Int) ;;
}
di
我正在使用sequelize with library,并试图实现以下关系:
小队
@Scopes({
withPlayers: {
include: [{model: () => User}]
}
})
@Table
export default class Team extends Model<Team> {
@AllowNull(false)
@Column
name: string;
@BelongsToMany(() => U
我想从一个表示URL的字符串中提取一个查询参数,并且我想在一个存储函数中这样做(我不可能使用一些标准函数?)
在Python中,这将是:
from urlparse import urlparse, parse_qs
def extract_oid(url):
"""
extract the 'oid' query argument
(simplified, no error handling)
>>> extract_oid('http:/
我需要删除大约80%的500Gb Postgresql数据库。
到目前为止,我已经成功地为大约50Gb的行运行了delete命令,并在继续之前暂停。(这花了很长时间,也许一个小时)
我注意到,在删除了大约50Gb的数据后,不会释放额外的磁盘空间,但在运行“htop”时,可以观察到一些内存密集型的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
我工作的公司使用谷歌云SQL来管理生产中的SQL数据库
我们存在性能问题,我认为(除其他外)查看/监视高于特定阈值(例如250ms)的所有查询是一个好主意
通过查看我认为log\u min\u duration\u语句似乎是我需要的标志
log\u min\u duration\u语句(整数)
如果语句至少运行指定的毫秒数,则导致记录每个已完成语句的持续时间。将此设置为零将打印所有语句持续时间
但从Cloud SQL文档判断,我发现只能设置一组很窄的数据库标志(如针对每个DB实例),但从log\
假设我有一个枚举:创建类型foo作为枚举('a','b','c')
我的表格中有一列的类型为foo
假设我要插入一个.tsv文件,该文件的值分别为enum列的字符串“a”或“b”或“c”,那么最有效的方法是什么
我这里有大约9000万行,因此逐个插入它们可能会慢得多。Postgres提供了从文件导入数据的命令。如果文件中的字符串完全是作为枚举成员写入的,那么这应该是现成的
COPY elbat
(nmuloc_1,
...,
nmuloc_n)
FRO
这是一个有点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
我正在尝试使用将数据库从sqlite迁移到postgresql。
我的sqlite db是data.db,所以我尝试了这个
pgloader ./var/data.db postgres://***@ec2-54-83-50-174.compute-1.amazonaws.com:5432/mydb?sslmode=require
输出:
pgloader version 3.6.1
sb-impl::*default-external-format* :UTF-8
tmpdir: #P"/v
目标:
我的目标是创建一个名为paymentPrice的新列,它是receiptPrice、platformFee、deliverederfee的总和(需要显示当前值的总和)
通过阅读文档,我认为使用生成的列将是实现这一目标的最佳方式
语法:
ALTER TABLE
"orders"
ADD
"paymentPrice" FLOAT GENERATED ALWAYS AS (orders."receiptPrice" + orders."platformFee" + orders."
我的ejabberd工作得很好,但我的日志中充满了对缺少的表pubsub_state的引用。我有很多其他的表都有这个前缀,但不是那个。我在哪里可以找到定义以便添加它
我正在使用PostgreSQL作为后端。定义在pg.sql中,但奇怪的是,它不是在您创建其他表时创建的。。。
就是这样。谢谢。当我在中添加定义时,我注意到有一个名为pubsu_state的空表。很奇怪。
我想知道是否有可能创建一个触发器,根据我的公共模式(public.tbl_media)中的tbl_media表中的insert或delete,在sde模式(sde.tbl_media)中的tbl_media表中插入或删除记录
我必须这样做的原因很长,但简而言之,我无法链接到ArcGIS中公共模式中的表。我需要保持该表处于活动状态,因为它正在联机接收输入…因此我基本上需要创建一个活动副本,以便在ArcGIS软件中链接到它。是的,可以在触发器中访问另一个模式的表(或任何对象)作为触发器函数或触发器所
我们有一个表来存储用户登录日志,user\u login\u log。每次用户登录时,此表都会收到一条记录
我们有一个用例来获取每个用户的最后一次登录时间戳,这些数据将被频繁地获取。要求是这些数据应该快速加载
要求
数据应该快速加载
数据不应过时
日志表可以有成千上万条记录,因此每次查询它们都是一个缓慢的过程。我们提出了两种快速检索数据的方法
方法1:我们最初的想法是使用物化视图
这种方法的问题是,随着用户登录日志表中数据的增加,刷新物化视图的查询速度会变慢,从而导致插入、更新和删除操作变慢
我正在应用程序中使用nestjs和typeorm。
我需要按货币和价格范围过滤产品
产品可以有不同的变体,每个变体可以有多个价格。每个价格都是价格和货币的组合
我的产品系列过滤器主数据如下
export const productPriceRangeMap: Map<string, number[]> = new Map([
['PLN', [5, 30]],
['EUR', [2,10]],
]);
for PLN currency, price ranges will b
我正在尝试使用以下图表连接Kubernetes中部署的airflow中的外部PostgreSQL数据库:
我正在修改values.yml文件:
#气流数据库配置
数据:
#如果提供了秘密名称,请使用这些秘密
metadataSecretName:~
结果BackEndSecretName:~
#否则,在中传递连接值
元数据连接:
用户:
通过:
主持人:
港口:5432
db:气流
sslmode:需要
结果BackEndConnection:
用户:
通过:
主持人:
港口:5432
db:气
下面是一个示例片段。我尝试使用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
我的一张表中有一个棘手的唯一性要求
假设我们有一桌狗。狗住在房子里
CREATE TABLE dogs (
dog_id integer,
house_id integer,
dogname varchar
}
狗的名字在房子里必须是唯一的。还有一个“主要”的房子,没有狗可以有一个名字是相同的狗在主要的房子
例如,其中house_id 0是“主”房屋:
如何创建对此建模的唯一性约束
我在想有一种方法可以在有约束的情况下实现,但我还没有弄清楚如何实现
我更愿意使用约束而不是触发器来执
我能够以用户身份注册并在本地主机上以用户身份成功登录,但在Heroku上我收到一个应用程序错误。请求似乎是超时问题(H12/503错误)。我很困惑,因为大约一个月前登录和注册工作正常。我从项目中休息了一下,那时Heroku已经成功部署并正在工作。现在我在Heroku上遇到了问题,不知道如何解决这个问题,也不知道是什么原因导致了这个问题
这是我的heroku日志-
2021-04-13T03:30:27.742004+00:00 heroku[路由器]:at=error code=H12 desc
当我运行“dotnet aspnet codegenerator controller-name EmployeeController-m Employee-dc AppDbContext--relativeFolderPath Controllers--useDefaultLayout--referenceScriptLibraries”时
创建控制器的步骤
AppDbContext是数据库上下文名称
Employee是类名
我得到的代码错误如下
搭建脚手架失败了。
无法获取[dir_name
如何在plpgsql中将值设置为序列
这在plpgsql中失败
您可以这样做,想象public.student\u id是已经存在的序列的名称:
select setval('public.student_id',max(student_id))
from public.student;
您所要做的就是将子查询用括号括起来。这在语法上是必需的。@LaurenzAlbe,您是对的,可以使用子查询。正如您在回答中指出的,它只需要用括号括起来,因此:选择setval'public.student_i
在使用postgresql 9.6数据库使用最终saga orchestrator模式实现微服务时,我们将遇到以下问题
org.springframework.jdbc.UncategorizedSQLException:
PreparedStatementCallback;SQL的未分类SQLException[选择
表名称所在的eventiate.information\u schema.columns中的数据类型=
?和列_name=?];SQL状态[0A000];错误代码[0];错误:
使用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服务,因为测试服务器中存在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 页