Come ottenere il nome del database corrente da PostgreSQL?


81

L'uso \c <database_name>in PostgreSQL si collegherà al database indicato.

Come si può determinare il nome del database corrente?

Inserimento:

my_db> current_database();

produce:

ERROR:  syntax error at or near "current_database"
LINE 1: current_database();

7
selezionare current_database ()
— Mihai il

1
Aggiungi un SELEZIONA prima.
— Mihai,

4
Sai che il prompt my_dbti dice già il database corrente?
— a_horse_with_no_name

Risposte:


131

La funzione current_database()restituisce il nome del database corrente:

 SELECT current_database();

È una funzione SQL, quindi è necessario chiamarla come parte di un'istruzione SQL. PostgreSQL non supporta l'esecuzione di funzioni come query autonome e non ha CALListruzioni come alcuni altri motori SQL, quindi è sufficiente utilizzare SELECTper chiamare una funzione.


34

puoi usare "\ conninfo" in psql


Dalla psqlversione 9.1. psqlTuttavia, ciò dovrebbe coprire praticamente tutti i clienti là fuori in questi giorni.
— dezso

26
\c

stampa qualcosa di simile

You are now connected to database "foobar" as user "squanderer".

Usa questo se non ti dispiace creare una nuova connessione, perché è quello che succede. \ Connect (abbreviato in \ c) senza tutti i parametri creerà una nuova connessione identica a quella attuale. La connessione corrente è chiusa.

Vedi le specifiche del comando \ connect su http://www.postgresql.org/docs/9.3/static/app-psql.html :

Se viene omesso uno qualsiasi di dbname, nome utente, host o porta (...), viene utilizzato il valore di quel parametro dalla connessione precedente.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.