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.