Je suis débutant chez PostgreSQL.
Je souhaite me connecter à une autre base de données à partir de l'éditeur de requêtes de Postgres, comme la commande USE
de MySQL ou MS SQL Server.
J'ai trouvé \c databasename
en effectuant une recherche sur Internet, mais il ne fonctionne que sur psql . Lorsque je l’essaie à partir de l’éditeur de requêtes PostgreSQL, j’obtiens une erreur de syntaxe.
Je dois changer la base de données en pgscripting. Est-ce que quelqu'un sait comment le faire?
Lorsque vous établissez une connexion avec PostgreSQL
, elle s’applique toujours à une base de données particulière. Pour accéder à une autre base de données, vous devez obtenir une nouvelle connexion.
L'utilisation de \c
dans psql ferme l'ancienne connexion et en acquiert une nouvelle, à l'aide de la base de données et/ou des informations d'identification spécifiées. Vous obtenez un tout nouveau processus d'arrière-plan et tout.
Vous devez spécifier la base de données à utiliser lors de la connexion; si vous voulez utiliser psql pour votre script, vous pouvez utiliser "\ c name_database"
user_name=# CREATE DATABASE testdatabase;
user_name=# \c testdatabase
À ce stade, vous pouvez voir la sortie suivante
You are now connected to database "testdatabase" as user "user_name".
testdatabase=#
Remarquez comment l’invite change. Bravo, je viens juste de chercher cela aussi, trop peu d’informations sur postgreSQL par rapport à MySQL et le reste à mon avis.
Dans pgAdmin, vous pouvez également utiliser
SET search_path TO your_db_name;
Le problème de base que je rencontrais lors de la migration de MySQL était, je pensais au terme database
être identique dans PostgreSQL, mais ce n’est pas le cas. Donc, si nous allons changer la base de données à partir de notre application ou de pgAdmin
, le résultat ne sera pas celui attendu. Comme dans mon cas, nous avons des schémas séparés (Considérant la terminologie PostgreSQL ici.) Pour chaque client et un schéma d’administrateur séparé. Donc, dans l'application, je dois basculer entre les schémas.
Pour cela, nous pouvons utiliser la commande SET search_path
. Cela fait basculer le schéma actuel sur le nom de schéma spécifié pour la session en cours.
exemple:
SET search_path = different_schema_name;
Cela change le schéma current_schema en le schéma spécifié pour la session. Pour le changer de façon permanente, nous devons apporter des modifications au fichier postgresql.conf
.
Utilisez cette commande lors de la première connexion à psql
=# psql <databaseName> <usernamePostgresql>