J'ai le problème suivant, j'ai besoin de mettre dans un script qui va fonctionner avant que la nouvelle version ne soit lancée le code SQL qui permet au PGAgent dans PostgreSQL. Toutefois, ce code devrait être exécuté sur la base de données de maintenance (Postgres) et la base de données où nous exécutons le fichier de script est un autre.
Je me souviens que dans SQL Server, il existe une commande "utilisation" afin que vous puissiez faire quelque chose comme: P>
use foo -- some code use bar -- more code
5 Réponses :
Vous pouvez utiliser ces commandes via la commande psql code>? Si oui, \ c Databasename code> est ce que vous voulez. P>
En réalité, l'entrée est un fichier texte traité par la base de données
Comment c'est "traité par la base de données"? Vous devez utiliser Quelques i> Postgres Client pour vous connecter. Lequel?
C'est un client qui exécute le fichier texte et il se connecte à la base de données via le pilote ODBC. Pour faciliter l'imagination, je suis sur le client PGADMIN et je souhaite exécuter un script qui fera une mise à jour dans deux bases de données différentes.
Jdbc ne reconnaît pas \ c code> afin que je dois me connecter à une URL jdbc spécifique que je souhaite connecter. Et exécuter le fichier SQL.
Si vous utilisez JDBC, vous n'utilisez pas PSQL. \ C code> n'est pas SQL - c'est une commande PSQL. Les connexions de la base de données Postgres ne peuvent pas être activées dans une autre base de données à la volée.
Vous ne pouvez pas changer de base de données à Postgres de cette manière. Vous devez réellement vous reconnecter à l'autre base de données. P>
Et existe-t-il un moyen de le faire à partir du script ou dois-je le faire de l'application qui se connecte à la base de données?
De l'application. Si vous avez terminé avec la première connexion de DB, déposez-le, sinon vous devrez effectuer deux connexions. J'avais demandé aux développeurs de PG la même question de retourner. Je ne me souviens pas de leurs raisons de le faire. Mais ils ont dit que même si PGADMIN et PSQL semblent simplement changer de base de données, ils établissent vraiment une nouvelle connexion.
postgreSQL n'a pas la commande d'utilisation. Vous utiliseriez probablement PSQL avec l'option --DBName pour accomplir cela, --DBname prend le nom de la base de données en tant que paramètre. Voir ce lien pour plus de détails sur les autres options que vous pouvez transmettre, vous souhaitez également consulter l'option --File également. http://www.postgresql.org/docs/9.0/interactivef/app -psql.html p>
Bien après avoir regardé sur le Web pendant un certain temps, j'ai trouvé ce qui était ce dont j'en ai besoin http: / /www.postgresonline.com/journal/archives/44-utilisation-dblink-a-access-other-postgresql-Databases-and-servers.html P>
Vous pouvez mettre dans votre fichier quelque chose comme:
Dupliqué possible de Comment changer de base de données dans psql?