AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-30081

vfclists's questions

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

A eliminação de uma tabela do Postgres ocorre em cascata para visualizações materializadas que dependem dela?

  • 5

Entendo que uma visualização regular será inválida se uma tabela da qual ela depende for descartada.

O mesmo se aplica a uma visão materializada?

Eu presumiria que em uma visão materializada, uma vez que os dados foram desacoplados da tabela de origem, deveria ser possível eliminar a tabela, mas avisar ou abortar se for feita uma tentativa de recriar ou atualizar a visão.

Em resumo, uma visão materializada pode ser dissociada de suas tabelas de origem, desde que não haja tentativa de recriá-la?

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

Qual função eu preciso para obter constantes entre aspas simples no SQL gerado? O gerador de código envolve a saída entre aspas simples entre aspas duplas

  • 6

Eu queria criar uma visão que somasse uma tabela comum a vários esquemas, conforme expresso aqui , e incluísse o nome do esquema ou uma expressão derivada como uma coluna, então criei uma visão que inclui o nome do esquema como um valor constante, por usando o quote_literalpara colocar o nome do esquema entre aspas simples.

Pode quote_literalnão ser a função correta aqui, mas tudo o que eu faço fica entre aspas duplas.

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$$;
")

Aplicando-o à consulta

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

produz

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

O problema são as aspas duplas em torno da constante entre aspas simples que faz com que o Postgres trate como um nome de coluna e vomite.

Corrigi o problema de geração de código usando aspas simples duplas no primeiro espaço reservado e descartando a quote_literalfunção,

ou seja, substituir

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

com

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

Meu problema não é tanto, quote_literalmas como a função sempre envolve a saída de qualquer função que envolve uma string entre aspas simples e aspas duplas.

Mesmo quando usei uma função para retirar um sufixo inicial nos nomes dos esquemas porque eles são redundantes, a saída entre aspas simples é colocada entre aspas duplas.

por exemplo, quote_nullable(right(schemas[i],-10))a string resultante fica entre aspas duplas.

Eu poderia aplicar o ||operador em algum lugar, mas prefiro uma função de cotação.

O Postgres não possui uma função integrada de aspas simples?

Há alguma sintaxe SQL necessária que estou faltando?

É uma peculiaridade do Postgres?

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

A função pl/pgsql pode receber um número variável de parâmetros?

  • 5

Eu tenho um banco de dados com vários esquemas que possuem as mesmas tabelas e visualizações e quero criar um procedimento que crie uma visualização a partir de uma das visualizações do esquema.

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é a visualização que será criada, common_viewé a visualização idêntica em todos os esquemas e schema_xé a lista de esquemas cujos common_views estão sendo unidos created_view.

O pl/pgsql possui uma sintaxe para indicar um número variável de parâmetros? created_view, common_viewe pelo menos one schema_xé necessário?

Estou considerando uma alternativa para passar uma string separada por vírgula ou espaço dos esquemas e usá-la regexp_split_to_arraypara separá-la, mas seria bom saber que argumentos de comprimento variável são possíveis.

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

Quais colunas são necessárias para listar o banco de dados, o esquema e a tabela de onde vem um registro?

  • 5

Estou escrevendo consultas que leem tabelas idênticas em bancos de dados e esquemas e preciso que as colunas incluam de qual esquema e tabela vem uma linha.

Ao pesquisar durante a criação deste post, encontrei esta resposta

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

Isso agora inclui o esquema e a tabela ou visualização.

Quais junções eu preciso agora para adicionar o banco de dados também?

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

O || operador no Postgres resulta em um resultado em branco se uma das colunas estiver em branco?

  • 3

Estou executando uma consulta no Postgres usando o ||operador para concatenar algumas colunas e parece que onde uma das colunas está em branco todo o resultado fica em branco. ||Isso é um comportamento normal ?

Com "em branco" quero dizer NULL.

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

Existe uma maneira de conectar um cliente de banco de dados Postgres 9 a um sistema Postgres 8?

  • 1

Agora trabalho principalmente com Postgres 9.5, mas também preciso me conectar a vários bancos de dados Postgres 8, conectá-los provavelmente como esquemas diferentes, se isso for possível. Os wrappers de banco de dados estrangeiros são o tipo de coisa que torna isso possível, ou há algum suporte embutido no Postbres 9.5?

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

A criação de uma restrição exclusiva em uma coluna Postgres remove a necessidade de indexá-la?

  • 14

A criação de uma restrição exclusiva em uma coluna Postgres remove a necessidade de indexá-la?

Espero que um índice seja automaticamente necessário para manter a restrição com eficiência.

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

O comando COPY do PostgreSQL tem a opção de escolher para quais campos mapear as colunas CSV?

  • 7

O comando PostgreSQL COPYtem a opção de escolher para quais campos mapear as colunas CSV?

O comando PostgreSQL COPYparece esperar que a tabela de destino corresponda exatamente às suas colunas. Estou perdendo alguma coisa ou é assim que realmente funciona?

Existe algum comando alternativo que permite isso?

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

O sqlite pode despejar o esquema do banco de dados em uma ordem fixa?

  • 3

Estou usando o SQLiteStudio 3.0.7 para despejar o esquema do banco de dados regularmente para fins de controle de versão e parece alterar a ordem das definições da tabela aleatoriamente. Isso causa estragos nas diferenças, pois mesmo uma pequena mudança, como adicionar uma ou duas colunas adicionais, parece resultar em diferenças selvagens em todo o lugar. Uma comparação lado a lado pode resultar em uma tabela inteira sendo listada separadamente quando é apenas a diferença de linha que deve aparecer.

O SQLiteStudio pode ser configurado para fazer isso corretamente ou o próprio sqlite pode fazer a mesma exportação de esquema de maneira formatada fixa?

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

psql com opção '-c' ou opção '-f' não está terminando corretamente

  • 1

Quando eu executo um comando psql -d database -c 'select * from table'ou psql -d database -f sqlcommands psqlnão termina de forma limpa. Curiosamente, canalizar o conteúdo do arquivo em vez de usar a -fopção, por exemplo, psql -d database < sqlcommandsnão exibe esse comportamento.

Preciso pressionar a qtecla conforme solicitado por lessou manpara que a execução termine e retorne ao prompt de comando?

Esse é o comportamento padrão? São necessários alguns escapes que permitirão que ele termine de forma limpa?

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

Qual é a relevância de 'SET default_with_oids = true' em um despejo do Postgresql?

  • 5

Eu tenho um backup SQL de um banco de dados antigo que pode ter sido um banco de dados PostgreSQL 7 ou 8 que estou importando, que contém uma SET default_with_oids - trueinstrução, em um banco de dados 8.4 existente e me pergunto qual é a relevância e como isso pode afetar o banco de dados existente.

Não acho que os OIDs tenham sido realmente usados ​​no banco de dados original. Posso simplesmente ignorá-lo?

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

Obter nomes de colunas e tipos de dados de uma consulta, tabela ou exibição

  • 30

Existe uma consulta ou comando do PostgreSQL que retorna os nomes dos campos e os tipos de campo de uma consulta, tabela ou visualização?

Por exemplo, uma solução, se aplicada a uma consulta SELECT simples SELECT * from person, deve retornar uma lista como:

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

Pesquisei as information_schemavisualizações descritas em uma resposta abaixo e parece cobrir as tabelas muito bem, e suspeito que também cubra as visualizações, mas ainda não verifiquei isso.

A última é qualquer consulta SELECT arbitrária, mas válida, por exemplo, envolvendo, JOINS, UNIONSetc, no banco de dados. Existe um procedimento interno ou outro procedimento armazenado ou script que possa retornar o mesmo para qualquer CONSULTA válida?

Estou desenvolvendo um programa que cria dados e formulários de consulta e as informações são necessárias para validação de dados e execução de funções nos dados retornados.

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

O PostgreSQL permite vários beneficiários em comandos GRANT?

  • 4

Olhando para os documentos do PostgreSQL, parece que o comando GRANT concede apenas a um único usuário ou função. Na verdade, não parece ser apenas o PostgreSQL.

Não é possível fazer algo do tipo GRANT SELECT UPDATE ON atable TO mary, bob, sue?

Parece-me uma grande omissão, ou há alguma razão, histórica ou prática para isso?

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

Como posso executar um PostgreSQL fora dos diretórios padrão do Linux, ou seja, fora de /var/run/postgresql etc?

  • 0

Eu preciso ser capaz de executar bancos de dados PostgreSQL fora dos diretórios de instalação padrão, ou seja, executar o existente postgresou pg_ctlprocesso apontando para as portas alternativas, configuração e diretórios de dados e executá-lo, com permissões etc funcionando bem.

Não quero que dependa das estruturas de configuração de instalação com base no pacote existente /etc/postgresqle /var/run/postgresqldo postgresusuário, mas use seus executáveis, se possível.

não vou usar initdbmuito. Os dados serão descompactados de outras instalações. A única coisa necessária é a compatibilidade do banco de dados com as instalações baseadas em pacotes existentes, que posso instalar se estiverem ausentes. Usar executáveis ​​de minha autoria será o último recurso, devido à possibilidade de dependências locais inesperadas.

O Windows parece bem coberto a esse respeito com alguns downloads no EnterpriseDB, mas não parece muito disponível para o Linux.

postgresql linux
  • 1 respostas
  • 155 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve