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 / dba / Perguntas / 186686
Accepted
medley56
medley56
Asked: 2017-09-23 09:05:27 +0800 CST2017-09-23 09:05:27 +0800 CST 2017-09-23 09:05:27 +0800 CST

Qual é a diferença entre "ALTER DATABASE mydb SET search_path" e "SET search_path"?

  • 772

PostgreSQL 9.6. Acabei de encontrar esses dois comandos em uma migração flyway, um ao lado do outro. Eu sinto que eles são provavelmente redundantes, mas como essas declarações diferem? Existe uma razão para usar ambos? Desculpas se esta é uma duplicata; Não consegui encontrar uma resposta.

postgresql
  • 2 2 respostas
  • 856 Views

2 respostas

  • Voted
  1. Best Answer
    a_horse_with_no_name
    2017-09-23T09:33:00+08:002017-09-23T09:33:00+08:00

    ALTER DATABASEmudará o search_pathpara cada nova conexão com esse banco de dados. A alteração, no entanto, não afeta as conexões atuais - incluindo aquela que executou o arquivo ALTER DATABASE. O set search_pathentão altera o caminho também para a conexão atual para que tenha o mesmo valor que o caminho padrão.

    • 6
  2. Erwin Brandstetter
    2017-09-27T15:48:40+08:002017-09-27T15:48:40+08:00

    Existem mais maneiras de definir parâmetros de configuração do que apenas as duas que você encontrou. Nenhum deles é redundante. Existem várias maneiras de contornar as configurações padrão. E search_pathquase sempre é essencial para o funcionamento geral.

    ALTER DATABASE test SET search_path = test, public;
    

    ... define um padrão para conexões com o banco de dados que anula o padrão em postgresql.conf. Mas há opções mais específicas para anular ambos. As configurações de uma função específica anulam as configurações do banco de dados e as configurações de uma função específica em um banco de dados específico anulam todas elas. Todos esses são padrões para novas conexões. O manual:

    Sempre que a função subsequentemente iniciar uma nova sessão, o valor especificado se tornará o padrão da sessão, substituindo qualquer configuração presente postgresql.confou recebida da postgres linha de comando. Isso só acontece no momento do login; executando SET ROLEou SET SESSION AUTHORIZATIONnão faz com que novos valores de configuração sejam definidos. As configurações definidas para todos os bancos de dados são substituídas por configurações específicas do banco de dados anexadas a uma função. As configurações de bancos de dados específicos ou funções específicas substituem as configurações de todas as funções.

    SET search_pathexecutado na sessão atual sempre tem a palavra final. Se você executar isso como o primeiro comando de cada sessão, os padrões nunca farão nada. Mas normalmente é sábio ter padrões razoáveis.

    Aqui está uma lista de maneiras de definir search_path(ou parâmetros de configuração semelhantes) e mais explicações:

    • Como o search_path influencia a resolução do identificador e o “esquema atual”
    • 0

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

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