AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-30081

vfclists's questions

Martin Hope
vfclists
Asked: 2023-12-19 04:41:29 +0800 CST

删除 Postgres 表是否会级联到依赖它的物化视图?

  • 5

我知道如果常规视图所依赖的表被删除,则常规视图将无效。

这同样适用于物化视图吗?

我假设在物化视图中,由于数据已与源表分离,因此应该可以删除该表,但如果尝试重新创建或刷新视图,则会发出警告或中止。

简而言之,只要不尝试重新创建物化视图,就可以将其与其源表解耦吗?

postgresql
  • 1 个回答
  • 33 Views
Martin Hope
vfclists
Asked: 2023-12-05 00:38:55 +0800 CST

我需要什么函数才能在生成的 SQL 中获取单引号常量?代码生成器将单引号输出用双引号括起来

  • 6

我想创建一个视图,对多个模式共有的表进行求和,如此处所示,并包含模式名称或派生表达式作为列,因此我创建了一个视图,其中包含模式名称作为常量值,通过使用quote_literal将模式名称括在单引号中。

这里的函数可能quote_literal不是正确的,但无论我做什么都会用双引号括起来。

CREATE OR REPLACE FUNCTION create_summary_view_quoted(
   created_view text,
   common_view text,
   VARIADIC schemas text[]
) RETURNS text
   LANGUAGE sql AS
$$SELECT format('CREATE VIEW %I AS ', created_view) ||
         string_agg(
            format('SELECT %I as source_schema, * FROM %I.%I ', quote_literal(schemas[i]) , schemas[i], common_view),
            ' UNION ALL '
         )
FROM generate_series(1, cardinality(schemas)) AS i$$;
")

将其应用到查询中

SELECT create_summary_view_quoted('newv', 'oldv', 's1', 's2', 's3');

产生

create view newv as
select
    "'s1'" as source_schema,
    *
from
    s1.oldv
union all
select
    "'s2'" as source_schema,
    *
from
    s2.oldv
union all
select
    "'s3'" as source_schema,
    *
from
    s3.oldv

问题是单引号常量周围的双引号导致 Postgres 将 is 视为列名并且它会崩溃。

我通过在第一个占位符周围使用双单引号并删除该函数来修复代码生成问题quote_literal,

即替换

format('SELECT %I as source_schema, * FROM %I.%I ', quote_literal(schemas[i]) , schemas[i], common_view),

和

format('SELECT ''%I'' as source_schema, * FROM %I.%I ', schemas[i] , schemas[i], common_view),

我的问题不在于quote_literal函数如何始终包装任何用双引号包装单引号字符串的函数的输出。

即使当我使用函数去除模式名称中的前导后缀(因为它们是多余的)时,单引号输出也会用双引号引起来。

例如,quote_nullable(right(schemas[i],-10))结果字符串被双引号括起来。

我可以||在某处应用运算符,但我更喜欢引用函数。

Postgres没有内置的单引号功能吗?

我是否缺少一些必需的 SQL 语法?

这是 Postgres 的怪癖吗?

postgresql
  • 1 个回答
  • 48 Views
Martin Hope
vfclists
Asked: 2023-11-20 16:00:38 +0800 CST

pl/pgsql 函数可以接受可变数量的参数吗?

  • 5

我有一个包含多个架构的数据库,这些架构具有相同的表和视图,并且我想创建一个过程,从架构中的视图之一创建视图。

CREATE OR REPLACE FUNCTION create_summary_view(
    created_view character varying,
    common_view character varying,
    schema_1 character varying,        
    schema_2 character varying,        
    schema_3 character varying,
    ...
    schema_x character varying,        
)

create_view是要创建的视图,common_view是在所有模式中相同的视图,是其s 被加入到 中的schema_x模式列表。common_viewcreated_view

pl/pgsql 是否有用于指示可变数量参数的语法?created_view,common_view并且至少one schema_x是必需的?

我正在考虑传递一个逗号或空格分隔的模式字符串并使用regexp_split_to_array它来分解它,但最好知道可变长度参数是可能的。

stored-procedures
  • 1 个回答
  • 19 Views
Martin Hope
vfclists
Asked: 2023-02-05 20:06:40 +0800 CST

需要哪些列来列出记录来自的数据库、模式和表?

  • 5

我正在编写查询,这些查询跨数据库和模式读取相同的表,我需要这些列来包含一行来自哪个模式和表。

在创建这篇文章的过程中进行搜索时,我遇到了这个答案

SELECT u.*, n.nspname as schema, u.tableoid::regclass::text as table_or_view
FROM   uses u
JOIN   pg_class     c ON c.oid = u.tableoid
JOIN   pg_namespace n ON c.relnamespace = n.oid

这现在包括架构和表或视图。

我现在还需要什么连接来添加数据库?

postgresql
  • 2 个回答
  • 52 Views
Martin Hope
vfclists
Asked: 2017-04-15 03:49:55 +0800 CST

|| 是否 如果其中一列为空白,Postgres 中的运算符会导致空白结果?

  • 3

我在 Postgres 中运行一个查询,使用||运算符连接一些列,似乎其中一列为空,整个结果为空。这是正常||行为吗?

我的意思是“空白” NULL。

postgresql operator
  • 1 个回答
  • 704 Views
Martin Hope
vfclists
Asked: 2016-05-19 17:20:37 +0800 CST

有没有办法将 Postgres 9 数据库客户端连接到 Postgres 8 系统?

  • 1

我现在主要使用 Postgres 9.5,但我也需要连接到多个 Postgres 8 数据库,如果可能的话,可能将它们连接为不同的模式。外国数据库包装器是那种使这成为可能的东西,还是 Postbres 9.5 中有一些内置支持?

postgresql-9.5 postgresql-8.4
  • 1 个回答
  • 52 Views
Martin Hope
vfclists
Asked: 2016-03-22 16:06:02 +0800 CST

在 Postgres 列上创建唯一约束是否消除了对其编制索引的需要?

  • 14

在 Postgres 列上创建唯一约束是否消除了对其编制索引的需要?

我希望自动需要一个索引来有效地维护约束。

database-design postgresql
  • 1 个回答
  • 5682 Views
Martin Hope
vfclists
Asked: 2016-03-19 00:59:51 +0800 CST

PostgreSQL COPY 命令是否可以选择将 CSV 列映射到哪些字段?

  • 7

PostgreSQLCOPY命令是否可以选择将 CSV 列映射到哪些字段?

PostgreSQLCOPY命令似乎期望目标表与其列完全匹配。我错过了什么还是它实际上是如何工作的?

是否有一些替代命令可以实现这一点?

postgresql copy
  • 2 个回答
  • 14221 Views
Martin Hope
vfclists
Asked: 2016-02-11 04:55:34 +0800 CST

sqlite 可以按固定顺序转储数据库模式吗?

  • 3

我正在使用SQLiteStudio 3.0.7 定期转储数据库模式以进行版本控制,它似乎随机更改了表定义的顺序。这对差异造成了严重破坏,因为即使是像添加一两个额外的列这样的小变化似乎也会导致到处都是疯狂的差异。当应该显示的只是行差异时,并排比较可能会导致整个表格被单独列出。

SQLiteStudio 可以配置为正确执行此操作吗?或者 sqlite 本身可以以固定格式的方式执行相同的模式导出吗?

sqlite
  • 2 个回答
  • 739 Views
Martin Hope
vfclists
Asked: 2015-05-15 02:33:36 +0800 CST

带有“-c”选项或“-f”选项的 psql 未正确终止

  • 1

当我运行这样的命令时psql -d database -c 'select * from table'orpsql -d database -f sqlcommands psql不会干净地终止。有趣的是,通过管道传输文件的内容而不是使用-f选项,例如,psql -d database < sqlcommands不会显示此行为。

我需要按或的q要求来完成执行并返回到命令提示符吗?lessman

这是标准行为吗?是否需要一些转义以允许它干净地终止?

postgresql psql
  • 1 个回答
  • 1365 Views
Martin Hope
vfclists
Asked: 2015-05-13 05:03:08 +0800 CST

Postgresql 转储中“SET default_with_oids = true”的相关性是什么?

  • 5

我有一个旧数据库的 SQL 备份,该数据库可能是我正在导入的 PostgreSQL 7 或 8 数据库,其中包含一条SET default_with_oids - true语句,到现有的 8.4 数据库中,我想知道相关性是什么以及它可能如何影响现有数据库。

我不认为原始数据库中实际使用了 OID。我可以简单地忽略它吗?

postgresql postgresql-8.4
  • 1 个回答
  • 4099 Views
Martin Hope
vfclists
Asked: 2014-08-27 14:46:36 +0800 CST

获取查询、表或视图的列名和数据类型

  • 30

是否有返回查询、表或视图的字段名称和字段类型的 PostgreSQL 查询或命令?

例如,如果应用于简单的 SELECT 查询的解决方案SELECT * from person应该返回一个列表,如:

Column Name   | Column Type
===========================
First Name    | character
Last Name     | character
Age           | integer
Date of Birth | date

我查看了information_schema下面答案中描述的视图,它似乎很好地涵盖了表格,我怀疑它也涵盖了视图,但我还没有检查过。

最后一个是任意但有效的 SELECT 查询,例如在数据库中涉及、JOINS等 UNIONS。是否有内置过程或其他存储过程或脚本可以为任何有效的 QUERY 返回相同的内容?

我正在开发一个创建数据和查询表单的程序,数据验证和对返回的数据执行函数需要这些信息。

postgresql datatypes
  • 5 个回答
  • 151706 Views
Martin Hope
vfclists
Asked: 2014-08-09 01:56:13 +0800 CST

PostgreSQL 是否允许在 GRANT 命令中使用多个被授权者?

  • 4

查看 PostgreSQL 文档,似乎 GRANT 命令仅授予单个用户或角色。事实上,它似乎不仅仅是 PostgreSQL。

不可能做类似的事情GRANT SELECT UPDATE ON atable TO mary, bob, sue吗?

对我来说,这似乎是一个重大遗漏,还是有某种历史原因或实际原因?

postgresql permissions
  • 1 个回答
  • 9080 Views
Martin Hope
vfclists
Asked: 2013-11-02 04:58:35 +0800 CST

我如何在 Linux 上的标准目录之外运行 PostgreSQL,即在 /var/run/postgresql 等之外?

  • 0

我需要能够在标准安装目录之外运行 PostgreSQL 数据库,即运行指向备用端口、配置和数据目录的现有postgres或进程并使其运行,权限等工作正常。pg_ctl

我不希望它依赖于现有的基于包的安装设置和用户的结构/etc/postgresql,/var/run/postgresql但postgres如果可能的话使用它们的可执行文件。

我不会用initdb太多。数据将从其他安装中解压缩。唯一需要的是数据库与现有的基于包的安装的兼容性,如果它们不存在,我可以安装。由于可能存在意外的本地依赖性,使用我自己的可执行文件将是最后的手段。

Windows 在 EnterpriseDB 的一些下载中似乎在这方面得到了很好的涵盖,但似乎没有那么多可用于 Linux。

postgresql linux
  • 1 个回答
  • 155 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve