我们正在尝试使用以下命令从命令行将 PostgreSQL 模式转储恢复到数据库中
psql -U postgres -d dbname < filename
Run Code Online (Sandbox Code Playgroud)
我们在恢复过程中在命令行中得到响应,如下所示
psql -U postgres -d dbname < filename
Run Code Online (Sandbox Code Playgroud)
并继续
我的问题是,如果在恢复和恢复继续进行之间发生了一些错误,如何在不通过命令行滚动这些整个响应的情况下检测该错误?或者如果发生错误,是否有自动停止并退出恢复过程?
我们正在使用 PostgreSQL 10
我正在尝试清理一个表,该表有一个非常混乱的 varchar 列,其中包含以下条目:
<u><font color="#0000FF"><a href="http://virginialidar.com/index-3.html#.VgLbFPm6e73" target="_blank">VA Lidar</a></font></u> OR <u><font color="#0000FF"><a href="https://inport.nmfs.noaa.gov/inport/item/50122" target="_blank">InPort Metadata</a></font></u>
Run Code Online (Sandbox Code Playgroud)
我想通过仅保留 html 链接来更新列,如果有多个链接,则用昏迷将它们分开。理想情况下,我会做这样的事情:
UPDATE mytable
SET column = array_to_string(regexp_matches(column,'(?<=href=").+?(?=\")','g') , ',');
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这会在 Postgres 10 中返回一个错误:
ERROR: set-returning functions are not allowed in UPDATE
Run Code Online (Sandbox Code Playgroud)
我假设regexp_matches()是所说的设置返回功能。关于如何实现这一目标的任何想法?
我有一个数字 1.00000001,我想将其限制在 -1 和 1 之间,以避免函数上出现输入超出范围错误ACOS()。MCVE 看起来像这样:
SELECT ACOS( 1 + 0.0000000001 );
Run Code Online (Sandbox Code Playgroud)
我的理想是这样的:
SELECT ACOS( CLAMP(1 + 0.0000000001, -1, 1) );
Run Code Online (Sandbox Code Playgroud) 获取此异常“'Npgsql.PoolManager' 的类型初始值设定项引发异常。” 仅在窗口 7 上。
public string ValidateDefaultInstancePostgreSqlServer()
{
string found = "0";
try
{
using (NpgsqlConnection postGresConnection = new NpgsqlConnection())
{
postGresConnection.ConnectionString = "Server=localhost;Port=5432;Database=postgres;User Id=postgres;Password=postgre123;Pooling=true;MinPoolSize=1;MaxPoolSize=100;Command Timeout=600;Timeout=600;";
using (NpgsqlCommand checkDBCommand = postGresConnection.CreateCommand())
{
postGresConnection.Open();
found = "1";
}
}
}
catch (Exception e)
{}
Run Code Online (Sandbox Code Playgroud)
注意:相同的代码在窗口 10 上工作正常。从 installsheild 设置运行此函数。请帮忙。
提前致谢!
我计划使用 AWS RDS Postgres 处理相当大的数据 (> ~50TB),但有几个问题尚未解答
16TB 是 AWS RDS Postgres 实例的最大限制吗?如果是,人们如何存储 > 16TB 的数据。
RDS 的 16TB 限制是 Postgres 可以在 AWS 上存储的压缩后最大数据库大小。
此外,我在设置 AWS RDS Postgres 数据库实例时没有看到任何启用压缩的选项。如何在 AWS RDS Postgres 中启用压缩?
我已经关注了:
跑步drop owned by <username>;给了我ERROR: permission denied to drop objects。我可以登录/创建/插入/更新/更改等。
像这样创建数据库和角色:
sudo psql -U postgresCREATE USER <username> WITH PASSWORD '<password>';CREATE DATABASE <dbname> OWNER <username> ;查找问题,这些是我运行的一些没有解决问题的东西:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <username>;GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO <username>;GRANT ALL PRIVILEGES ON DATABASE <dbname> to <username>;GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO <username>;我正在尝试将 postgres-9.3 升级到 postgres-10,数据库大小约为 165GB。我正在使用“sudo pg_upgradecluster 9.3 main”来执行此操作,但需要大约 8 小时,这对于我的实时 Web 应用程序来说停机时间太多了。有任何建议可以让它变得更好、更少的停机时间和更快的速度。
我运行 Postgres 数据库并希望将空字符串转换为NULL。以下片段应该对所有列执行此操作,但它不起作用。
SELECT * FROM schema.table NULLIF(columnname,'');
Run Code Online (Sandbox Code Playgroud)
错误信息是:
ERROR: syntax error at or near "''"
LINE 2: NULLIF(columnname,'');
Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个 jsonb 对象,其键按字母顺序排列。然而,它似乎jsonb_object_agg(k, v)忽略了输入的顺序,并按密钥长度对输入进行排序,然后按字母顺序排序。
例如
select jsonb_object_agg(k, v order by k) from (
values ('b', 'b_something'), ('ab', 'ab_something')
) as t (k,v)
Run Code Online (Sandbox Code Playgroud)
给出
{
"b": "b_something",
"ab": "ab_something"
}
Run Code Online (Sandbox Code Playgroud)
但我需要的是
{
"ab": "ab_something"
"b": "b_something",
}
Run Code Online (Sandbox Code Playgroud)
有办法实现这一点吗?
上下文 我正在展平一个 json 列,其中的内容遵循统一但笨重的模式。由于这个有用的答案,我已经成功地做到了这一点,但是按键的顺序并不是我需要它们的方式。
$ /usr/pgsql-12/bin/pg_upgrade \
> -b /usr/pgsql-1
pgsql-10/ pgsql-12/
> -b /usr/pgsql-10/bin/ \
> -B /usr/pgsql-12/bin/ \
> -d /var/lib/pgsql/1
10/ 12/
> -d /var/lib/pgsql/10/data/ \
> -D /var/lib/pgsql/12/data/ \
> --check
Performing Consistency Checks
-----------------------------
Checking cluster versions ok
Checking database user is the install user ok
Checking database connection settings ok
Checking for prepared transactions ok
Checking for system-defined composite types in user tables ok
Checking for reg* data types in user tables ok
Checking for contrib/isn with bigint-passing …Run Code Online (Sandbox Code Playgroud) postgresql-10 ×10
postgresql ×9
sql ×4
psql ×2
.net ×1
amazon-rds ×1
c# ×1
database ×1
ifnull ×1
null ×1
pg-dump ×1
pg-upgrade ×1
postgres-12 ×1
regex ×1
sql-update ×1
upgrade ×1